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 之间的第二个小节和
  • tic 2 和 3 之间的第三个小节

为了实现这一目标,需要调整什么属性?我目前正在寻找XAxisand XAxis.Scale,但我还没有找到任何东西......

4

1 回答 1

3

您可能无法使用 normal 来做到这一点BarItem。我使用BoxObj对象来创建直方图。

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

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 = ...
于 2010-10-10T22:14:35.830 回答