2016-10-03 2 views
1

Я спросил в 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

ответ

2

Polar и Radar графики выглядят довольно похожи, но они на самом деле совершенно разные.

Как вы видели, в диаграмме Polar вы можете влиять на количество сегментов, задав соответствующие свойства X-Axis.

Важнейшими являются Maximum и Interval.

Radar является отличается: Это в основном работает как индексируется диаграмму. Это означает, что все точки находятся на равным расстоянием в строке (или, вернее, круге) полностью игнорируя значения x.

Это означает, что:

  • число сегментов равно числу DataPoints.
  • Значения для XAxis.Maximum, -Minimum and -Interval игнорируются.
  • Нет двух DataPoints может делиться одним и тем же местом, даже если их значения x одинаковы.

В Вашем примере, у вас должен быть 25 datapoints, возможно, первый и последний равные. Для диаграммы 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

спасибо. Как только вы сказали, что радарная диаграмма завершается, я знал, что я сделал неправильно. Огромное спасибо. –

Смежные вопросы