2016-05-12 3 views
0

私はC#とWinformに慣れていますが、Chartコントロールは初めてです。私はSystem.Windows.Forms.DataVisualization.Charting.Chartに組み込まれたVS2013を使用して2点のバーを表示しています。ここでは単にコードです:Winform Chartコントロール - 異なるデータの同じバー幅を表示し続ける

private void Form1_Load(object sender, EventArgs e) 
    { 
     Chart c = new Chart(); 
     c.Dock = DockStyle.Fill; 

     ChartArea a = new ChartArea(); 
     a.AxisX.Minimum = 0; 
     a.AxisX.Maximum = 4; 
     a.AxisY.Minimum = 0; 
     a.AxisY.Maximum = 2; 

     c.ChartAreas.Add(a); 

     Series s = new Series(); 
     //******************* 
     s.Points.AddXY(1, 1); 
     //s.Points.AddXY(2, 2); 
     s.Points.AddXY(3, 2); 
     //******************* 
     c.Series.Add(s); 

     this.Controls.Add(c); 
    } 

enter image description here 注意してくださいコメント部分、点(2,2)と(3,2)は、データだけ異なっており、ディスプレイスタイルとは何の関係もありません(私は推測する?)。だから、この動作は非常に奇妙に思われ、今まで私は(2,2)のように(3,2)を表示し続けていませんでした。

+0

以下の回答を確認してください。私はあなたの問題を解決することを願っています。コメントは不要になったので削除しました。私はasp.netでチャートを使用しましたが、winformsではそうではありませんでした。 – Spidey

答えて

1

あなたは所望の出力を達成するために以下のコードを追加する必要があります。

1]軸ラベルとグリッドラインは変更されませんので、軸の間隔を修正。

a.AxisX.Interval = 1; 

2]シリーズのバー幅を固定します。 PixelPointWidthを使用してピクセル単位で幅を指定するか、またはPointWidthをポイント単位で指定します。 PixelPointWidthを使用して

例:フォームをスケーリング場合も

s["PixelPointWidth"] = "20"; 

、あなたが全体のフォームにチャートを埋めるためにc.Dock = DockStyle.Fill;を使用しているためには、一定の幅は良いことではないだろう。 MinPixelPointWidthMaxPixelPointWidthを使用すると、幅の範囲を指定できます。

s["MinPixelPointWidth"] = "20"; 
s["MaxPixelPointWidth"] = "80"; 

different chart elementsの詳細については、このリンクをクリックしてください。 Chartコントロールの詳細については、 Technical Referenceを参照してください。これは長いかもしれませんが、詳細を理解することが重要です。

関連する問題