带有 haskell-图表的叠加图

Superimposed plots with haskell-chart

我正在尝试使用 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)。我试图通过将 plot_hist_norm_func .= const id 更改为 const (fromIntegral . id :: Int -> Double) 并提供 Default (PlotHist x Double) 的实例,将直方图绘制成 EC (Layout Double Double)。结果代码经过类型检查但没有绘制任何内容。我的问题是:如何在 haskell-chart 中绘制带曲线的直方图?

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

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

这是我想要的情节