我在winform上有一个图表控件,应记录一些计数p小时 在本地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;
答案 0 :(得分: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;
答案 1 :(得分:1)
除了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());