如何显示仅包含1个数据点的折线图

时间:2014-08-22 14:37:27

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

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

当发生这种情况时,因为图表上只有1个点,它不会显示任何线条或区域图表(它可以在条形图和柱形图上工作)。

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

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

当只有1点

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

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

3 个答案:

答案 0 :(得分:0)

线的定义基本上是两点之间的空间。你不能在一个点之外创造一条线,而不是完全任意的。

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

答案 1 :(得分:0)

我把这个放在我的问题中,但因为这是答案,我想把它放在这里

当只有1点

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

答案 2 :(得分:0)

我遇到了同样的问题,我通过放置另一个具有相同值的数据点解决了这个问题,因此,当只有一个值时,它只是复制相同的值,您将放置该点。因此,将类似于以下内容:

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