2011-08-08 12 views
5

Bir WinForms uygulamasında MS Grafik denetimini kullanarak bir radar grafiği çizmek istiyorum.MS grafik radar ekseni sıklığı

Bu tablo 1 gün veri içeriyor, her saniye için bir veri var, bu yüzden 86 400 x-y değer çiftine sahibim. X ekseni tarihleri ​​içerir, int değerlerim.

Testim kodu şu şekildedir:

var fromDate = new DateTime(DateTime.Now.Year, 
             DateTime.Now.Month, 
             DateTime.Now.Day, 
             0, 
             0, 
             0); 

      var toDate = new DateTime(DateTime.Now.Year, 
             DateTime.Now.Month, 
             DateTime.Now.Day, 
             23, 
             59, 
             59); 

      List<DateTime> xValues = new List<DateTime>(); 
      List<double> yValues = new List<double>(); 

      var iterDate = fromDate; 
      var i = 0; 

      while (iterDate <= toDate) 
      { 
       xValues.Add(iterDate); 
       yValues.Add(i); 

       iterDate = iterDate.AddSeconds(1); 
       i++; 
      } 

      chart1.Series["Default"].Points.DataBindXY(xValues, yValues); 

      var dateLabelStyle = new LabelStyle(); 
      dateLabelStyle.Format = "HH:mm:ss"; 
      chart1.ChartAreas["Default"].AxisX.LabelStyle = dateLabelStyle; 

      chart1.ChartAreas["Default"].AxisX.Minimum = fromDate.ToOADate(); 
      chart1.ChartAreas["Default"].AxisX.Maximum = toDate.ToOADate(); 

      chart1.Series["Default"].IsXValueIndexed = true; 
      chart1.Series["Default"].ChartType = SeriesChartType.Radar; 
      chart1.Series["Default"]["RadarDrawingStyle"] = "Line"; 
      chart1.Series["Default"]["AreaDrawingStyle"] = "Circle"; 
      chart1.Series["Default"]["CircularLabelsStyle"] = "Horizontal"; 
      chart1.ChartAreas["Default"].Area3DStyle.Enable3D = false; 

Sonucu görünümü şu şekildedir: enter image description here

Ben siyah daire etkisi 'nedeni her 86 için y ekseni çizer olduğunu düşünüyorum 400 puan. Bu eksenleri sadece her saatte çekmek için nasıl ayarlayabilirim?

x ekseni için etiketler (ayarladığım tarihler) görünmüyor. Onlara nasıl gösterebilirim?

Thx önceden!

.net4/C#/Win/VS2010

Muhtemelen yerine "Radar" bir "Kutup" arsa kullanmak istiyorum

cevap

3

. Bunun gibi bir şey bence ne istediğiniz ona yaklaştıkça olacaktır: Yardımlarınız için

chart1.Series["Default"].ChartType = SeriesChartType.Polar; 
chart1.Series[0]["PolarDrawingStyle"] = "Line"; 
// setup the X grid 
chart1.ChartAreas["Default"].AxisX.MajorGrid.Enabled = true; 
chart1.ChartAreas["Default"].AxisX.MajorGrid.IntervalType = DateTimeIntervalType.Hours; 
chart1.ChartAreas["Default"].AxisX.MajorGrid.Interval = 1; 
chart1.ChartAreas["Default"].AxisX.Crossing = 0; 
// setupthe Y grid 
chart1.ChartAreas["Default"].AxisY.MajorGrid.Enabled = true; 

Polar plot

+0

Teşekkür! – Tom

İlgili konular