複数のグラフを表示するアプリケーションでは、各グラフの x 軸の目盛を同期させることができます。
Margins プロパティを使用して、複数のグラフ領域の x 軸の位置を揃えます。たとえば、下のような方法で、2つのグラフの x 軸の位置を調整します。これに変更を加えれば、3つのグラフを同期させることもできます。
Visual Basic コードの書き方
Visual Basic |
コードのコピー
|
---|---|
Private Sub AdjustAxisPositions() C1Chart1.ChartArea.Margins.Left = 10 C1Chart1.ChartArea.Margins.Right = 10 C1Chart2.ChartArea.Margins.Left = 10 C1Chart2.ChartArea.Margins.Right = 10 ' 強制的に再描画 Dim img As Image = C1Chart1.GetImage() If img IsNot Nothing Then img.Dispose() End If img = C1Chart2.GetImage() If img IsNot Nothing Then img.Dispose() End If Dim ch1_X As Rectangle = C1Chart1.ChartArea.AxisX.GetAxisRect() Dim ch2_X As Rectangle = C1Chart2.ChartArea.AxisX.GetAxisRect() Dim d As Integer = ch1_X.Left - ch2_X.Left If d > 0 Then C1Chart2.ChartArea.Margins.Left += d ElseIf d < 0 Then c1Chart1.ChartArea.Margins.Left -= d End If d = ch1_X.Right - ch2_X.Right If d > 0 Then C1Chart1.ChartArea.Margins.Right += d ElseIf d < 0 Then C1Chart2.ChartArea.Margins.Right -= d End If End Sub |
C# コードの書き方
C# |
コードのコピー
|
---|---|
void AdjustAxisPositions() { c1Chart1.ChartArea.Margins.Left = 10; c1Chart1.ChartArea.Margins.Right = 10; c1Chart2.ChartArea.Margins.Left = 10; c1Chart2.ChartArea.Margins.Right = 10; // 強制的に再描画 Image img = c1Chart1.GetImage(); if( img!=null) img.Dispose(); img = c1Chart2.GetImage(); if( img!=null) img.Dispose(); Rectangle ch1_X = c1Chart1.ChartArea.AxisX.GetAxisRect(); Rectangle ch2_X = c1Chart2.ChartArea.AxisX.GetAxisRect(); int d = ch1_X.Left - ch2_X.Left; if( d>0) c1Chart2.ChartArea.Margins.Left += d; else if( d<0) c1Chart1.ChartArea.Margins.Left -= d; d = ch1_X.Right - ch2_X.Right; if( d>0) c1Chart1.ChartArea.Margins.Right += d; else if( d<0) c1Chart2.ChartArea.Margins.Right -= d; } |