$ sudo apt-get install aptitude
sudo aptitude install libghc-chart-dev
- その後、stack buildすると、あれがない、これがない。あれをバージョンつきでyamlに書け、と言われるのでそれに従う
- 以下は、stack new plot して作った環境(plot という名前のプロジェクトを作成した)に、上記のlibghc-chart-devしたあとで、書き換えたcabal, yamlとこちらから取ってきたMain.hsファイルを app/Main.hsとして、stack buildしたもの
executable plot-exe
hs-source-dirs: app
main-is: Main.hs
ghc-options: -threaded -rtsopts -with-rtsopts=-N
build-depends: base
, plot
, gtk2hs-buildtools
, gtk
, Chart
, colour
, data-default-class
, Chart-cairo
, lens
, Chart-diagrams
, Chart-gtk
default-language: Haskell2010
extra-deps:
- Chart-1.8.2
- Chart-cairo-1.8.2
- Chart-gtk-1.8.2
module Main where
import Graphics.Rendering.Chart
import Data.Colour
import Data.Colour.Names
import Data.Default.Class
import Graphics.Rendering.Chart.Backend.Cairo
import Graphics.Rendering.Chart.Gtk
import Control.Lens
chart :: Renderable ()
chart = toRenderable layout
where
quad :: Double -> Double
quad = (**2)
pl = plot_lines_values .~ [[ (x, (quad x)) | x <- [-50..50]]]
$ plot_lines_style . line_color .~ opaque blue
$ plot_lines_style . line_width .~ 3
$ plot_lines_title .~ "plot_lines"
$ def
pp = plot_points_values .~ [ (x, (quad x)) | x <- [-50,-45..50]]
$ plot_points_style .~ filledPolygon 5 4 False (opaque magenta)
$ plot_points_title .~ "plot_points"
$ def
layout = layout_title .~ "y=x^2"
$ layout_plots .~ [toPlot pl, toPlot pp]
$ def
main :: IO ()
main = do
_ <- renderableToFile def "quad.png" chart
renderableToWindow chart 640 480
stack build
stack exec plot-exe