尝试使用ZedGraph创建直方图

3

我正在尝试使用ZedGraph创建直方图。

柱形和数据都很好,唯一需要的是我的柱形应该在刻度之间而不是直接在刻度上。

样本数据:

1, 4
2, 8
3, 1

这意味着我有:

4 items that are >= 0 and < 1
8 items that are >= 1 and < 2
1 item that is >= 2 and < 3

目前我的柱形图当然是直接出现在刻度(x值)1、2和3上。

但我想看到:

  • 第一根柱子在刻度0和1之间,
  • 第二根柱子在刻度1和2之间,
  • 第三根柱子在刻度2和3之间。

哪个属性可以调整以实现这一点? 我目前正在查看 XAxisXAxis.Scale,但我还没有找到任何东西……

1个回答

3

普通的BarItem可能无法完成此操作。我使用BoxObj对象创建直方图。

如果histList是包含您的直方图值(断点和值)对的PointPairList,您可以使用:

for (int i = 0; i < histList.Count - 1; i++)
{
BoxObj box = new BoxObj(histList[i].X, histList[i].Y, histList[i + 1].X - histList[i].X, histList[i].Y);
box.IsClippedToChartRect = true;
box.Fill.Color = myColor;
pane.GraphObjList.Add(box);
}

使用BoxObj,您可以完全控制条的位置等。更多信息请参见文档编辑
请记住,使用BoxObj(或任何一般的GraphObj)时,X和Y比例尺不会自动设置。您需要手动设置比例尺范围。
pane.XAxis.Scale.Min = ...
pane.XAxis.Scale.Max = ...
pane.YAxis.Scale.Min = ...
pane.YAxis.Scale.Max = ...

嗨,图表开始缩放得太多了,许多条形图在可见区域之外(缩小后我们可以看到它们)。您是否知道如何修复它? - Bruno

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接