複数のグラフを表示するアプリケーションでは、各グラフの 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;
}
|
|