Есть ли библиотека Haskell для рисования графиков, подобная MATLAB, scilab или matplotlib? Все они имеют очень простые интерфейсы, которые работают как конечный автомат:
plot(xs, ys)
show() -- opens window with plot
Было бы неплохо отображать графики в окне и иметь возможность записывать их на диск.
С первого взгляда на matplotlib я не думаю, что экосистема Haskell обладает чем-то настолько богатым. Однако меня порадовали результаты, полученные библиотекой Chart . Есть также привязки к graphviz (который связывает одно из нескольких) и Ubigraph .
Редактировать: Отвечая на запрос о построении координат (x, y):
Я не совсем понимаю, что вы хотите. Если у вас есть функция f :: x -> y
, тогда просто используйте функцию plotWindow (или PNG и т. Д.):
import Graphics.Rendering.Chart.Simple
main = plotWindow [0,0.1..5::Double] sin
Если у вас есть набор точек, [(x,y)]
, то тот же код с поиском в список, вместо непрерывной функции, такой как sin
, должен работать нормально. Смотрите на связанной странице множество примеров.
Попробуйте gnuplot. Это мультиязычный язык, довольно быстрый в масштабе, и всегда приятно знать, даже если он старый. Эти инструкции должны дать вам рабочий пример:
cabal install gnuplot
sudo apt-get install gnuplot-x11
ghci
GHCi, version 7.4.1: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
h> import Graphics.Gnuplot.Simple
h> plotFunc [] (linearScale 1000 (-20,20)) (\x -> sin x / x)