2016-08-05 78 views
1

我在MS Windows图表中发现了一个奇怪的行为。在MS Chart控件中绘制x = 0的两个y值

假设我想要有两点(1,10)和(1,20)的散点图。我可以这样做:

.... 
Series series = new Series(); 
series.ChartType = SeriesChartType.Point; 
double[] x = { 1, 1 }; 
double[] y = { 10, 20 }; 
series.Points.DataBindXY(x, y); 

工作正常。但是现在我想要相同的结果,但是这两个x值应该是0

double[] x = { 0, 0 }; 
double[] y = { 10, 20 }; 
series.Points.DataBindXY(x, y); 

在这种情况下的图表控制创建在“自动生成”×1位和两个数据点2.它只是忽略给定的x值。如果我使用的是相同的行为

series.Points.AddXY(0, 10); 
series.Points.AddXY(0, 20); 

我对两个以上的数据点的效果相同。所以事实证明,如果至少有一个x值不为零,则散点图不起作用。

我认为可能的解决方法是使用多个系列,但这是不可接受的。

有没有人有这种行为的解释或解决方案?

回答

3

我找到了解决的自己:

你必须

series.CustomProperties = "IsXAxisQuantitative=True"; 

添加到您的代码。所以x值真的被视为值。我不知道为什么如果我使用BindXY函数,这不是不言而喻。

+0

大男人,你救了我的一天:-) – eljobso

+1

'系列[“IsXAxisQuantitative”] =“真”;'等同,但将避免覆盖任何现有的自定义属性。 –