【发布时间】:2016-08-03 23:33:10
【问题描述】:
我正在创建一个 C# WinForms 应用程序,该应用程序使用 WinForms 折线图控件显示来自 SQL 服务器的几乎实时、基于时间(约 5 秒刷新率)的数据。在图表上获取和插入数据工作得很好,这只是我遇到的格式问题。 X 轴包含每个点的 DateTime,并设置为在 X 轴上显示日期。
我遇到的问题是 X 轴标签没有在图表中均匀显示。我能够获得所需的轴标签数量,但它们在轴上的位置不一致。
理想情况下,我希望能够设置 x 轴标签的数量,在图表的每一端都有一个标签,然后剩余的标签均匀地分布在图表的其余部分。然后,每次将新数据添加到图表时,标签都会保留在完全相同的位置,只是标签文本会更新。
这里有两张图片应该可以清楚地说明我在追求什么。
第一张图片是16:10:00到16:11:00范围内的数据。
这是我想要的任何开始/结束日期:
第二张图片显示了当我添加 5 秒的新数据并删除 5 秒的旧数据时会发生什么。
用新数据刷新后的图表:
这是我用于 x 轴格式化的代码的 sn-p。
chart.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Seconds;
chart.ChartAreas[0].AxisX.Interval = timeDiff.TotalSeconds / numXTicks;
chart.ChartAreas[0].AxisX.Minimum = timeMin.ToOADate();
chart.ChartAreas[0].AxisX.Maximum = timeMax.ToOADate();
chart.ChartAreas[0].AxisX.LabelStyle.Format = "yyyy-MM-dd" + Environment.NewLine + "HH:mm:ss";
chart.ChartAreas[0].AxisX.LabelStyle.IsEndLabelVisible = true;
chart.ChartAreas[0].AxisX.IsMarginVisible = true;
感谢您的帮助。长期潜伏者和第一次海报。
【问题讨论】:
标签: c# asp.net winforms charts