在MS Chart控件中绘制x = 0的两个y值
我在MS Chart for Windows Forms中发现了一种奇怪的行为。
假设我想要一个带有两个点(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);
在这种情况下,图表控件在’自动生成’x位置1和2处创建两个数据点。它只是忽略给定的x值。 如果我使用它是相同的行为
series.Points.AddXY(0, 10); series.Points.AddXY(0, 20);
我对两个以上的数据点有相同的效果。 因此,如果至少有一个x值不为零,则散点图不起作用。
我认为可能的解决方法是使用多个系列,但这是不可接受的。
有没有人对此行为或此问题的解决方案有解释?
我自己找到了一个解决方案:
你必须添加
series.CustomProperties = "IsXAxisQuantitative=True";
你的代码。 因此,x值实际上被视为值。 如果我使用BindXYfunction,我不知道为什么这不是不言而喻的。
(我只想对Fratyx的答案发表评论,但我想这样做没有声誉。)
为了详细说明Fratyx的答案, IsXAxisQuantitative
属性仅适用于某些SeriesChartType
,并且对于其他类型将被忽略。
这些是以下类型: https : //referencesource.microsoft.com/#System.Windows.Forms.DataVisualization/Common/Utilities/CustomAttributesRegistry.cs,e51a969ce4c7db16