在 MS Chart 控件中绘制 x=0 的两个 y 值
Plotting two y-values for x=0 in a MS Chart control
我在 MS Chart 中发现 Windows 表单的奇怪行为。
假设我想要一个包含两个点 (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);
在这种情况下,图表控件在 'autogenerated' x 位置 1 和 2 处创建两个数据点。它只是忽略给定的 x 值。如果我使用
,这是相同的行为
series.Points.AddXY(0, 10);
series.Points.AddXY(0, 20);
我对两个以上的数据点得到了相同的效果。所以事实证明,如果不是至少有一个 x 值不为零,散点图就不起作用。
我认为可能的解决方法是使用多个系列,但这是不可接受的。
有人对此行为有解释或解决此问题吗?
我自己找到了解决方案:
您必须添加
series.CustomProperties = "IsXAxisQuantitative=True";
到你的代码。所以 x 值实际上被视为值。我不知道为什么如果我使用BindXY函数这不是不言而喻的。
(我只想对 Fratyx 的回答发表评论,但我想我没有资格这样做。)
为了详细说明 Fratyx 的回答,IsXAxisQuantitative
属性 仅适用于某些 SeriesChartType
,其他类型将被忽略。
我在 MS Chart 中发现 Windows 表单的奇怪行为。
假设我想要一个包含两个点 (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);
在这种情况下,图表控件在 'autogenerated' x 位置 1 和 2 处创建两个数据点。它只是忽略给定的 x 值。如果我使用
,这是相同的行为series.Points.AddXY(0, 10);
series.Points.AddXY(0, 20);
我对两个以上的数据点得到了相同的效果。所以事实证明,如果不是至少有一个 x 值不为零,散点图就不起作用。
我认为可能的解决方法是使用多个系列,但这是不可接受的。
有人对此行为有解释或解决此问题吗?
我自己找到了解决方案:
您必须添加
series.CustomProperties = "IsXAxisQuantitative=True";
到你的代码。所以 x 值实际上被视为值。我不知道为什么如果我使用BindXY函数这不是不言而喻的。
(我只想对 Fratyx 的回答发表评论,但我想我没有资格这样做。)
为了详细说明 Fratyx 的回答,IsXAxisQuantitative
属性 仅适用于某些 SeriesChartType
,其他类型将被忽略。