MATLAB

2012-01-26 42 views
27

ile benzer Haskell çizim kütüphanesi MATLAB, scilab veya matplotlib? Ye benzer çizim çizimleri için bir Haskell kütüphanesi var mı?MATLAB

plot(xs, ys) 
show() -- opens window with plot 

Bir pencerede araziler görüntülemek için ve diske yazma yeteneğine sahip güzel olurdu: Hepsinde durum makinesi gibi çalışır, çok basit arayüzleri var.

+2

Sorunuzu düzenlenebilir ve "matplotlib" ile "numpy" değiştirilir: Bu talimatlar size çalışma örneği almalısınız eğer yanılıyorsam düzeltin. – Chris

cevap

12

gnuplot nedir? Graphics.Gnuplot.Simple dan Örneğin

, plotList: matplotlib bir bakışta itibaren

plotList [] [(1, 1), (2, 2), (3, 3)] 
+3

'gnuplot' iyidir, ancak arayüzünü basit olarak çağırmam. –

+1

Harici uygulamalardan hoşlanmayı sevmiyorum. Yine de teşekkürler. – Trismegistos

+1

Aslında görüyorum ki bundan daha iyi bir şey yok. Teşekkürler. – Trismegistos

9

, ben Haskell ekosistem zengin özelliklere olarak bir şey olduğunu sanmıyorum. Ancak, Chart kütüphanesi tarafından üretilen sonuçlardan memnun kaldım. Ayrıca, graphviz (birkaçını birbirine bağlayan) ve Ubigraph için de bağlamalar vardır.

Düzenleme: (x, y) planlamaktan talebine cevap olarak koordinatları:

Ne istediğini tam olarak belli değilim.

import Graphics.Rendering.Chart.Simple 
main = plotWindow [0,0.1..5::Double] sin 

Eğer noktaları, [(x,y)] bir grup var, listeden bir arama ile daha sonra aynı kod yerine a: o zaman bir işlevi f :: x -> y varsa sadece işlev plotWindow (veya PNG, vs) kullanmak sin gibi sürekli işlev düzgün çalışmalıdır. Birçok örnek için bağlantılı sayfaya bakın.

+0

X'lere karşı çok basit bir çizim örneği verebilir misiniz? Teşekkürler. – Trismegistos

5

plot paketi de vardır. plot-gtk ile kullanıldığında grafikler GHCi içinde görüntülenebilir ve değiştirilebilir. Arsalar, Kahire'nin desteklediği biçimlerde diske yazılabilir.

Simple arayüzü gnuplot 's benzer:

test_graph2 = do 
    plot (ts,[point (ds,es) (Cross,red),line fs blue]) 
    title "Testing plot package:" 
    subtitle "with 1 second of a 15Hz sine wave" 
    xlabel "time (s)" 
    ylabel "amplitude" 
    yrange Linear (-1.25) 1.25 
+0

Umut verici görünüyor, bunu deneyeceğim. – Trismegistos

1

deneyin gnuplot. Ölçeği oldukça hızlı olan çapraz dil, ve eski olsa bile bilmek her zaman güzel bir şey. Sana matplotlib anlamına geldiğini varsayalım, ancak çekinmeyin - numpy bir grafik/komplo kütüphane olmadığından,

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)