尝试使用ZedGraph创建直方图

时间:2010-10-10 18:20:34

标签: c# histogram zedgraph

我正在尝试使用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 个答案:

答案 0 :(得分: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,您可以完全控制条的位置等。documentation

中的更多信息

修改
请记住,在使用BoxObj(或一般的GraphObj时)时,不会自动设置X和Y比例。您需要手动设置比例范围:

pane.XAxis.Scale.Min = ...
pane.XAxis.Scale.Max = ...
pane.YAxis.Scale.Min = ...
pane.YAxis.Scale.Max = ...