我有一个.net程序,允许用户从下拉列表和数据范围中选择一个图表然后查询sql以获取数据以显示图表,一切都很好,除非他们选择的日期范围只返回1个值那张特别的图表。
当发生这种情况时,因为图表上只有1个点,它不会显示任何线条或区域图表(它可以在条形图和柱形图上工作)。
如果只有1个数据点,我想过将图形类型强制为列但是想知道是否存在我缺少的设置,如果只有1个数据点,则允许在折线图上使用直线。
基于伪造第二点的想法,我提出了这个技术上做我想做的事情。
当只有1点
时调用 foreach (Series ser in mainChart.Series)
{
ser.Points.AddY(ser.Points[0].YValues[0]);
}
我想我可能应该添加,以防其他人需要这个,上面的代码需要在图表已经是DataBound(已调用.DataBind()之后)。
答案 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