【问题标题】:Charting hours wont start at zero图表时间不会从零开始
【发布时间】:2017-07-14 10:40:27
【问题描述】:

我在一个 winform 上有一个图表控件,它应该记录一些每小时的计数。
在本地 PC 时间的 12 小时时钟上重复。
所以图表从 0 开始到 11
问题是当它的 12:20 或 12:50 或 12:10 我无法让编号从 X 轴上的 0 开始

我的主要初始化图表如下:

int[] numbers = new int[11] {12,11,10,91,82,7,66,5,44,3,2,1};
chart1.ChartAreas[0].AxisX.Maximum = 11;
chart1.ChartAreas[0].AxisX.Minimum = 0;
chart1.ChartAreas[0].AxisX.Interval = 1;

然后循环更新并重绘图表,如下所示

DateTime  currentTime = DateTime.UtcNow.ToLocalTime();
int hour12 = (currentTime.Hour % 12);
numbers[hour12]++;    
chart1.Series["total"].Points.DataBindY(numbers);

我也试过,但在这里没有帮助。

chart1.ChartAreas[0].AxisX.IsMarginVisible = false; 

【问题讨论】:

  • 我希望如此,但该解决方案不起作用,我在发布之前也尝试过。
  • DataBindXY 怎么样?
  • 因为您没有设置任何 x 值,所以它们都是 0。标签枚举点,从1 开始。就是这样。如果您想查看其他数字,请设置 x 值!
  • 不,我在这一行增加了当前的小时值:numbers[hour12]++;这确实增加了位置小时的数组项

标签: c# charts


【解决方案1】:

替换

chart1.Series["total"].Points.DataBindY(numbers);

chart1.Series["total"].Points.DataBindXY(Enumerable.Range(0,12).ToArray(), numbers);

更新: 设置 AxisX 以便所有图表系列正确显示:

chart1.ChartAreas[0].AxisX.Maximum = 12;
chart1.ChartAreas[0].AxisX.Minimum =-1;
chart1.ChartAreas[0].AxisX.Interval = 1;

【讨论】:

  • 导致 System.ArgumentOutOfRangeException,当我不替换该行时它不会发生
  • 试试Enumerable.Range(0,12).ToArray()。同样,您的这一行 int[] numbers = new int[11] {12,11,10,91,82,7,66,5,44,3,2,1}; 也无法编译,因为您正在用 12 个 int 初始化一个 11 位 int 数组
  • 数组 pos 从零开始你可以做 numbers[0] = 1;
  • 你是说int[] numbers = new int[11] {12,11,10,91,82,7,66,5,44,3,2,1};这行代码正在你的visual studio上编译吗?
  • 奇怪的是,虽然改变你的行 (0,12) 确实有效果。但是有一个问题..我每小时在图表上显示 3 个条形图(红色绿色橙色),第一个条形图没有显示,因为它从图表的可视区域中掉了出来
【解决方案2】:

除了 Sakis 去掉 -1 和 12 得到 0..11 的刻度。

chart1.ChartAreas[0].AxisX.Maximum = 12;
chart1.ChartAreas[0].AxisX.Minimum =-1;
chart1.ChartAreas[0].AxisX.Interval = 1;
chart1.ChartAreas[0].AxisX.CustomLabels.Add(-1.5, -0.5, "Hour");
chart1.ChartAreas[0].AxisX.CustomLabels.Add(11.5, 12.5, "   ");
for(int i=0;i<12;i++)   chart1.ChartAreas[0].AxisX.CustomLabels.Add(i-0.9, i+0.9, i.ToString());

【讨论】:

    猜你喜欢
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 2017-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多