带有 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
这是我想要的情节
我正在尝试使用 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
这是我想要的情节