2016-10-03 22 views
1

我在previous question中詢問如何爲極座標圖設置特定數量的環和扇區。我現在有一個按鈕,可以將圖表從極座標變爲雷達。問題是段數從24(正確)變爲25(錯誤)。我不知道爲什麼。將ChartType從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 

image: polar image: Radar

回答

2

PolarRadar圖看起來非常相似,但他們真的是完全不同

如您所見,在Polar圖表中,您可以通過設置相關的X軸屬性來影響分段的數量。

最重要的是MaximumInterval

Radar不同:它基本上工作類似於索引圖表。這意味着所有點都坐在等距連續(或更確切的說一個圓圈)忽略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圖表中有兩個彩色數據點段:

enter image description hereenter image description here

您還可以看到我已將12+1DataPoints添加到Chart。第一個和最後一個在Polar圖表中重合,但在Radar圖表中彼此相鄰。

+0

謝謝。只要你說雷達圖自己完成,我就知道我做錯了什麼。非常感謝。 –