【问题标题】:How to Manipulate X-axis of chart如何操作图表的 X 轴
【发布时间】:2013-11-21 03:45:37
【问题描述】:

我已经制作了一个图表并在运行时添加了点。数据绘制为 Chart1.ChartAreas(0).AxisX.IntervalType = DateTimeIntervalType.Weeks Chart1.Series("PH").Points.AddXY(DateTime.Parse(dr.Item("readtime")).ToString("MM-dd"), dr.Item("ph")) 绘制的数据包含 7 天的数据。 如下图,日期重复。

这种情况下如何实现x轴只显示11-08、11-13、11-14?

这是一个示例数据

【问题讨论】:

  • 你能发表一些你的观点吗?
  • 编辑主帖以显示示例数据
  • Carth 试过了,但我不确定如何将日期时间格式转换为最大、最小使用的双精度。这也不是解决此问题的方法,因为我当前的 Min,Max 是正确的。问题在于重复日期。

标签: c# vb.net visual-studio-2010 charts axis-labels


【解决方案1】:

当你从数据库中获取数据时,像这样使用,

SELECT SUM(ph),SUM(tmp),SUM(orp),SUM(sal),SUM(ec),SUM(tds),SUM(do),readtime
FROM <your tables>
GROUP BY readtime

从这个查询返回的结果集就是你要找的东西......

【讨论】:

  • 感谢这是一种替代解决方案,但仍然不是理想的解决方案。我使用的 SQL 具有 ORDER BY readtime 并且我不允许使用 SUM 函数,因此不允许使用 GROUP BY 子句
  • 然后将数据库结果读入数据表或列表中,并使用上面的 LINQ 计算聚合并将它们绑定到图表。您必须获取聚合,因为图表逐行获取 x,y 值。因此,要让您指定三列,您必须只有三行。
  • 感谢这给了我灵感,让我以另一种方式创建我的 sql,从而解决了我的问题。
【解决方案2】:

您显示的数据显然是无效数据。

您有几个零读数发生在完全相同的时间 - 午夜。

我怀疑 这些甚至不是真正的读数。

您需要排除它们(您可能应该找出发生这种情况的原因 - 可能是解析错误?)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-17
    • 2020-07-01
    • 1970-01-01
    • 2022-10-31
    • 1970-01-01
    • 2017-03-10
    相关资源
    最近更新 更多