我正在尝试使用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中绘制带曲线的直方图?
答案 0 :(得分:0)
直方图包导出了制作Default (PlotHist x Double)
实例所需的所有内容,如下所示:
import Graphics.Rendering.Chart.Plot.Histogram(defaultNormedPlotHist)
instance Default (PlotHist x Double) where
def = defaultNormedPlotHist
这是我想要的情节