2010-10-10 46 views
3

我想用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,但我还没有发现任何东西...

回答

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更多信息完全控制

EDIT
请记住,使用时BoxObj(或一般的任何GraphObj)的X和Y尺度并不是布莱恩g自动设置。您需要手动设置刻度范围:

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

看起来不错,感谢您的输入! – ibiza 2010-10-11 01:59:21

+0

嗨,图表开始放大太多,许多酒吧都在可见区域之外(缩小我们可以看到它们)。你会知道如何解决它? – ibiza 2010-10-11 15:40:29

+1

看到我的编辑。希望它会有所帮助 – Gacek 2010-10-11 19:21:55