将ChartType从Polar更改为Radar

时间:2016-10-03 09:28:50

标签: c# charts mschart radar-chart

我在previous question中询问如何为极坐标图设置特定数量的环和扇区。我现在有一个按钮,可以将图表从极地变为雷达。问题是段的数量从24(正确)变为25(错误)。我不知道为什么。

设置响铃次数的代码:

#region chartdesign
Series s = chartleft.Series[0];            // a reference to the default series
ChartArea ca = chartleft.ChartAreas[0];  // a reference to the default chart area
Axis ax = ca.AxisX;
Axis ay = ca.AxisY;
s.ChartType = SeriesChartType.Polar;   // set the charttype of the series

s.Points.AddXY(0,0);
ax.Interval = 15;
ay.Interval = 1;

ax.IntervalOffset = 0;
ax.Minimum = 0;
ax.Maximum = 360;

ay.IntervalOffset = 0;
ay.Minimum = 0;
ay.Maximum = 10;
//----------------------------------------------------------------------
Series s2 = chartright.Series[0];            // a reference to the default series
ChartArea ca2 = chartright.ChartAreas[0];  // a reference to the default chart area
Axis ax2 = ca2.AxisX;
Axis ay2 = ca2.AxisY;
s2.ChartType = SeriesChartType.Polar;   // set the charttype of the series

// a few data to test:

s2.Points.AddXY(0, 0);

ax2.Interval = 15;
ay2.Interval = 1;

ax2.IntervalOffset = 0;
ax2.Minimum = 0;
ax2.Maximum = 360;

ay2.IntervalOffset = 0;
ay2.Minimum = 0;
ay2.Maximum = 10;
#endregion

image: polar image: Radar

1 个答案:

答案 0 :(得分:2)

gitPolar图表看起来非常相似,但它们确实完全不同

如您所见,在Radar图表中,您可以通过设置相关的X轴属性来影响细分数量。

最重要的是PolarMaximum

Interval 不同:它基本上像索引图表一样工作。这意味着所有点都在相等距离连续(或更确切地说是一个圆圈)完全忽略x值

这意味着:

  • 段数等于 Radar 的数量。
  • DataPoints的值将被忽略。
  • 没有两个XAxis.Maximum, -Minimum and -Interval可以共享相同的位置,即使它们的x值相同。

在您的示例中,您必须拥有DataPoints数据点,可能是第一个和最后一个相等。对于25图表,这些图表将位于相同的点,但对于雷达图表,它们彼此相邻,因此您会看到另外一个段。

让我克隆第一个点并将其添加到结尾:

Polar

如果您为第一个和最后一个s.Points.Add(s.Points.First().Clone()); 添加颜色,您可以更好地看到它:

DataPoint

现在,您可以在s.Points.First().Color = Color.Orange; s.Points.Last().Color = Color.Red; 图表中看到一个彩色线段,但Polar图表中有两个彩色数据点段:

enter image description here enter image description here

您还可以看到我已将Radar 12+1添加到DataPoints。第一个和最后一个在Chart图表中重合,但在Polar图表中彼此相邻。