将 ChartType 从 Polar 更改为 Radar
Changing a ChartType from Polar to Radar
我在中问过如何为极图设置特定的环数和扇区数。我现在有一个按钮可以将图表从极地图更改为雷达图。问题是段数从 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
Polar
和 Radar
图表看起来很相似,但它们确实 完全不同。
如您所见,在 Polar
图表中,您可以通过设置相关的 X 轴属性来影响线段的数量。
最重要的是 Maximum
和 Interval
。
Radar
与 不同 :它基本上像 indexed 图表一样工作。这意味着所有点都位于 等距 排成一排(或者更确切地说是一个圆圈),完全 忽略 x 值 .
这意味着:
- 段数等于段数
DataPoints
。
- 忽略
XAxis.Maximum, -Minimum and -Interval
的值。
- 没有两个
DataPoints
可以共享同一个点,即使它们的 x 值相同。
在您的示例中,您必须有 25
个数据点,第一个和最后一个可能相等。对于 Polar
图表,它们将位于 相同的 位置,但对于雷达图表,它们位于 旁边 位置,因此您会看到一个更多细分。
让我克隆第一个点并将其添加到末尾:
s.Points.Add(s.Points.First().Clone());
如果给第一个和最后一个加上颜色,你会看得更清楚DataPoint
:
s.Points.First().Color = Color.Orange;
s.Points.Last().Color = Color.Red;
现在您可以在 Polar
图表中看到一个彩色线段,但在 Radar
图表中可以看到两个彩色数据点段:
你也可以看到我在Chart
中添加了12+1
DataPoints
。第一个和最后一个在 Polar
图表中重合,但在 Radar
图表中彼此相邻。
我在
设置响铃次数的代码:
#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
Polar
和 Radar
图表看起来很相似,但它们确实 完全不同。
如您所见,在 Polar
图表中,您可以通过设置相关的 X 轴属性来影响线段的数量。
最重要的是 Maximum
和 Interval
。
Radar
与 不同 :它基本上像 indexed 图表一样工作。这意味着所有点都位于 等距 排成一排(或者更确切地说是一个圆圈),完全 忽略 x 值 .
这意味着:
- 段数等于段数
DataPoints
。 - 忽略
XAxis.Maximum, -Minimum and -Interval
的值。 - 没有两个
DataPoints
可以共享同一个点,即使它们的 x 值相同。
在您的示例中,您必须有 25
个数据点,第一个和最后一个可能相等。对于 Polar
图表,它们将位于 相同的 位置,但对于雷达图表,它们位于 旁边 位置,因此您会看到一个更多细分。
让我克隆第一个点并将其添加到末尾:
s.Points.Add(s.Points.First().Clone());
如果给第一个和最后一个加上颜色,你会看得更清楚DataPoint
:
s.Points.First().Color = Color.Orange;
s.Points.Last().Color = Color.Red;
现在您可以在 Polar
图表中看到一个彩色线段,但在 Radar
图表中可以看到两个彩色数据点段:
你也可以看到我在Chart
中添加了12+1
DataPoints
。第一个和最后一个在 Polar
图表中重合,但在 Radar
图表中彼此相邻。