【问题标题】:Plotting a graph using Haskell使用 Haskell 绘制图形
【发布时间】:2013-12-29 11:40:02
【问题描述】:

是否可以使用 Haskell 绘制一个简单的图表? 有谁能教我怎么做吗?

图表应至少包含 3 个点

【问题讨论】:

    标签: haskell graph plot


    【解决方案1】:

    除了 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

    matplotlib

    如果您可以安装一些 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

    有各种包可以创建 gnuplot 脚本,可用于制作 png 等:https://hackage.haskell.org/packages/search?terms=gnuplot

    【讨论】:

      【解决方案2】:

      haskell-chart 好像不错。

      wiki 包含使用该包绘制的图表列表。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-12-16
        • 2015-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多