2011-08-08 7 views
5

私はWinFormsアプリケーションでMSチャートコントロールを使用してレーダーチャートを描画したいと思います。MSチャートレーダーの軸周波数

このグラフには1日分のデータが含まれています。毎秒のデータがあるため、86400 x-yの値のペアがあります。 X軸は日付を含み、yはint値を含む。

私のテストコードは、このようなものです:

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; 

結果ビューは、このようなものです: enter image description here

私は「黒丸効果」の理由は、それはすべての86のためにy軸を描くということだと思います400ポイント。これらの軸を毎時だけ描画するように設定するにはどうすればよいですか?

x軸のラベル(設定した日付)は表示されません。どのように表示できますか?

Thxで事前に!あなたはおそらく、 "極地" のプロットの代わりに、 "レーダー" を使用したい

.net4/C#/リサイズ/ VS2010

答えて

3

。そのような何かが近づいあなたは私が考えて欲しいものにあなたを取得します:

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

あなたの助けをありがとう! – Tom