如何在WinForms项目中使用ScottPlot绘制直方图?
在Windows Forms项目中实现ScottPlot基础直方图
要将官方直方图示例整合到你的Windows Forms项目中,只需修改CreateChart方法,替换原有散点图逻辑为直方图生成代码,并直接使用formsPlot1.Plot对象操作即可,无需创建独立的ScottPlot.Plot实例。
修改后的CreateChart方法如下:
void CreateChart() { // 创建直方图,指定数值范围和分组数量 ScottPlot.Statistics.Histogram hist = new(min: 140, max: 220, binCount: 100); // 生成符合正态分布的随机身高数据 Random rand = new(0); double[] heights = ScottPlot.DataGen.RandomNormal(rand, pointCount: 1234, mean: 178.4, stdDev: 7.6); hist.AddRange(heights); // 向控件的Plot对象添加直方图柱状图 formsPlot1.Plot.AddBar(values: hist.Counts, positions: hist.Bins); // 自定义图表样式 formsPlot1.Plot.YAxis.Label("数量 (#)"); formsPlot1.Plot.XAxis.Label("身高 (cm)"); formsPlot1.Plot.SetAxisLimits(yMin: 0); // 刷新控件以显示更新后的图表 formsPlot1.Refresh(); }
关键修改说明:
- 移除了原有散点图的
AddScatter调用,替换为直方图的AddBar方法,使用直方图的Counts(每组数量)和Bins(分组位置)作为参数。 - 直接操作
formsPlot1.Plot对象,而非创建新的ScottPlot.Plot实例(官方示例中用于生成图片文件)。 - 保留
formsPlot1.Refresh()以触发控件渲染更新。
内容的提问来源于stack exchange,提问作者D_Den12314
相关产品推荐
相关产品推荐

