【问题标题】:How can I display a line chart with only 1 data point如何显示只有 1 个数据点的折线图
【发布时间】:2014-10-16 11:01:06
【问题描述】:

我有一个 .net 程序,它允许用户从下拉列表和数据范围中选择一个图表,然后查询 sql 以获取数据以显示图表,一切都很好,除非他们选择一个只会返回 1 个值的日期范围那个特定的图表。

当发生这种情况时,由于图表上只有 1 个点,它不会显示任何折线图或面积图(它适用于条形图和柱形图)。

如果只有 1 个数据点,我曾考虑将图形类型强制为列,但我想知道如果只有 1 个数据点,我是否缺少允许折线图上的直线的设置。

基于伪造第二点的想法,我想出了这个技术,它在技术上做了我想要它做的事情。

只有 1 个点时调用此方法

 foreach (Series ser in mainChart.Series)
 {
     ser.Points.AddY(ser.Points[0].YValues[0]);
 }

我想我可能应该添加以防其他人需要,上面的代码需要在图表被 DataBound 之后(调用了 .DataBind())。

【问题讨论】:

  • 一条线的定义是两个不全等的点。根据定义,一条线不能只有一个点。
  • 是的,我知道线的定义,是的,我意识到它作为图表毫无意义,这无助于最终用户理解图表在技术上不是空的,但只有1 分。
  • 然后添加第二个点。例如如果您的单个值为(8,9),则添加(0,9)(8,0) 以生成通过您的点的水平/垂直线。
  • 这基本上就是我问马克 B 是否有自动执行此操作的设置,我正在转换一个使用过时版本的基础架构的旧程序,并且在他们的图表上它似乎自动执行此操作.换句话说,无论点数如何,它都会显示一条线
  • 示例必须是真实数据吗?如果示例没有正确的数据,您是否考虑过用第二点来伪造它?

标签: c# asp.net .net asp.net-charts


【解决方案1】:

线的定义基本上是两点之间的空间。如果不是完全任意的,您就无法从一个点中划出一条线。

一旦你决定了线应该朝向哪个角度,只需制作第二个数据点来伪造你希望它看起来的线。但实际上听起来你更喜欢散点图,而不是折线图。我建议更改您使用的图表。如果需要,您很可能也可以在散点图上画线。

【讨论】:

    【解决方案2】:

    我把这个放在我的问题中,但既然这是答案,我想我也会把它放在这里

    只有 1 个点时调用此方法

    foreach (Series ser in mainChart.Series)
    {
       ser.Points.AddY(ser.Points[0].YValues[0]);
    }
    

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,我通过放置另一个具有相同值的数据点来解决它,所以它只是复制相同的值,当只有一个时,你会放置点。所以它会是这样的:

      this.g.Series[serieID].Points.AddXY(x, y); // <-- Duplicate this line if you only have one value
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-03
        • 2021-12-16
        • 2014-08-03
        • 2010-10-03
        • 1970-01-01
        相关资源
        最近更新 更多