带有haskell图表的叠加图

时间:2015-03-01 23:47:18

标签: haskell charts

我正在尝试使用haskell-chart绘制具有叠加密度函数的直方图。按照项目wiki和tests上的示例,我编写了这段代码:

chart = toRenderable $ do
    plot $ fmap histToPlot $ liftEC $ do
        plot_hist_title .= "My histogram"
        plot_hist_bins .= 10
        plot_hist_values .= ([0,1..100] :: Double)
        plot_hist_norm_func .= const id
    plot (line "my curve" myCurve) where 
        myCurve = [zip [0,1..100] (repeat 20)] :: [[(Double, Double)]]

这会产生类型错误,因为直方图是EC (Layout Double Int),曲线图是EC (Layout Double Double)。我试图通过将EC (Layout Double Double)更改为plot_hist_norm_func .= const id并提供const (fromIntegral . id :: Int -> Double)的实例,将直方图绘制为Default (PlotHist x Double)。结果代码类型已检查但未绘制任何内容。我的问题是:如何在haskell-chart中绘制带曲线的直方图?

1 个答案:

答案 0 :(得分:0)

直方图包导出了制作Default (PlotHist x Double)实例所需的所有内容,如下所示:

import Graphics.Rendering.Chart.Plot.Histogram(defaultNormedPlotHist)
instance Default (PlotHist x Double) where
    def = defaultNormedPlotHist

这是我想要的情节

enter image description here