【发布时间】:2013-12-29 11:40:02
【问题描述】:
是否可以使用 Haskell 绘制一个简单的图表? 有谁能教我怎么做吗?
图表应至少包含 3 个点
【问题讨论】:
是否可以使用 Haskell 绘制一个简单的图表? 有谁能教我怎么做吗?
图表应至少包含 3 个点
【问题讨论】:
除了 Chart,还有一些非常好的与语言无关的绘图库/系统,可从 Haskell 中使用。我自己使用 Vega 和 matplotlib。
您可以将 Vega-Lite 与 Haskell 包 hvega 一起使用,它会为您提供一个 html 文件,其中包含使用 vega-lite js 库绘制的图表。
基本用法:
import Graphics.Vega.VegaLite
main = do
toHtmlFile "myplot.html" $ toVegaLite
[ dataFromUrl "rows.tsv" [TSV]
, mark Bar [MTooltip TTEncoding]
, enc []
, height 600
, width 400
]
where enc = encoding
. position X [ PName "date"
, PmType Ordinal
]
. position Y [ PName "joy"
, PmType Quantitative
]
. color [MName "activity", MmType Nominal]
(然后将 tsv 和 html 文件放在由 Web 服务器提供服务的目录中,例如该目录中的 $ python -m SimpleHTTPServer。)此示例给出了三列的堆叠条形图(假设 rows.tsv 具有在代码):
文档有很多例子:https://hackage.haskell.org/package/hvega/docs/Graphics-Vega-Tutorials-VegaLite.html
如果您可以安装一些 Python dep,matplotlib 可以让交互式绘图和探索变得容易。
简单示例:
onscreen $ let b = bar [21..23] in
b [56,57,56] @@ [o2 "color" "#4C78A8"]
% b [26,24,25] @@ [o2 "color" "#F58518"]
% b [16,15,14] @@ [o2 "color" "#E45756"]
有关更多示例,请参阅readme。
Plotly(最初用于 R)可从 Haskell 与包 plotlyhs 一起使用。你会得到一个带有交互式绘图的独立 html 页面。
用法示例:https://glutamate.github.io/plotlyhs/
有各种包可以创建 gnuplot 脚本,可用于制作 png 等:https://hackage.haskell.org/packages/search?terms=gnuplot
【讨论】:
haskell-chart 好像不错。
wiki 包含使用该包绘制的图表列表。
【讨论】: