Microsoft Chart Control のX軸に関する設定(フォント・タイトル・区切り線・他)
下記サンプルは、必ず、CSVファイルを使っての基本的なグラフの表示 をご覧になってからお試しください。

Private Sub Button4_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button4.Click
'Microsoft Chart Control のX軸 に関する設定(フォント・タイトル・区切り線)
   Call ChartClar(Chart1)  '設定を一旦初期値に戻す。(通常は必要ありません。)
   With Chart1
      For i As Integer = 1 To colums
         Dim columnName As String = ds.Tables(0).Columns(i).ColumnName.ToString()
         '系列の設定(国語・数学等)
         .Series.Add(columnName)
         'グラフの種類を縦棒グラフに設定
         .Series(columnName).ChartType = DataVisualization.Charting.SeriesChartType.Column
         'X 軸のラベルテキストの読込・設定(浅野等の氏名)
         .Series(columnName).XValueMember = ds.Tables(0).Columns(0).ColumnName.ToString()
         'グラフ用のデータの読込・設定(点数)
         .Series(columnName).YValueMembers = columnName
      Next
'------------- ここまでは、基本的な表示設定と同じ -----------------------------------------

      '■------------------------ X軸 に関する設定 -------------------------Start--■
      With Chart1.ChartAreas(0).AxisX

         'X軸ラベルのテキストを変更する場合
         '(浅野だけを変更する事はできない又自動フォントサイズの設定がうまく反映されない?)
         '.CustomLabels.Add(2, 0, "あさの")
         '.CustomLabels.Add(4, 0, "安室")
         '.CustomLabels.Add(6, 0, "加藤")
         '.CustomLabels.Add(8, 0, "斉藤")
         '.CustomLabels.Add(10, 0, "鈴木")

         '下記設定では、上記自動サイズ設定が無効となりサイズが固定となる
         '.LabelStyle.Font = New Font("MS P明朝", 12, FontStyle.Italic)

         '下記は、既定値が True のなのでわざわざ記入する必要はありません。
         .IsLabelAutoFit = True  '下記設定は、(True 既定値)に設定しておかないと有効とならない。
         'ラベルに対して自動的に適用できるスタイルの設定  注@ 参照
         .LabelAutoFitStyle = LabelAutoFitStyles.DecreaseFont Or 
LabelAutoFitStyles.IncreaseFont
         'X軸ラベル(氏名)の自動調整で使用できる最大のフォントサイズを設定
         '(グラフを拡大表示した時に表示サイズに合せてフォントサイズも大きくなる時の最大サイズ)
         .LabelAutoFitMaxFontSize = 20
         'X軸ラベル(氏名)の自動調整で使用できる最小のフォントサイズを設定
         '(グラフを縮小表示した時に表示サイズに合せてフォントサイズも小さくなる時の最小サイズ)
         .LabelAutoFitMinFontSize = 5     '5 以下の設定はできない

         'X軸ラベル(氏名)の区切り線の間隔を設定
         '既定値は、0 で自動的に表示される  注A 参照
         .MajorGrid.Interval = 2    ' 1 に変更して試して見てください。
         'X軸ラベル(氏名)の区切り線の表示開始位置の設定
        ' .MajorGrid.IntervalOffset = 0.5  '列と列の間に表示される

         '上記と同様で、こちらはラベルのテキスト(浅野・安室等)の表示間隔
         '(MajorGrid.Interval とは別設定なので混同しないように)
         .LabelStyle.Interval = 1    '1データ毎に表示(すべて表示)

         'グラフと氏名の間の線の色
         .LineColor = Color.Red
         .LineWidth = 2

         'X軸ラベルのタイトルの設定
         .Title = "生  徒  名"                      'タイトルのテキストを設定
         'タイトルの表示位置を設定(Near=左端(近く) Far=(遠く)  Center=中央)
         .TitleAlignment = StringAlignment.Center   '中央に表示
         'タイトルのテキストの文字の表示方向を設定  注B 参照
         .TextOrientation = TextOrientation.Auto    'Autoで表示
         'X軸ラベルのタイトルのフォントを設定
         .TitleFont = New Font("MS P明朝", 12, FontStyle.Regular)
         'X軸ラベルのタイトルのテキストの表示色を設定
         .TitleForeColor = Color.Green
      End With
      '■-------------------------------------------------------------------End----■

   End With

End Sub

上記コードの実行結果

    

    

    

注@
 None                ラベルの変更はできません。 
 IncreaseFont        ラベルのフォント サイズを大きくすることができます。 
 DecreaseFont        ラベルのフォント サイズを小さくすることができます。 
 StaggeredLabels     ラベルを交互に配置できます。 
 LabelsAngleStep30   ラベルを 30 度単位 (0、30、60、90) で傾けることができます。 
 LabelsAngleStep45   ラベルを 45 度単位 (0、45、90) で傾けることができます。 
 LabelsAngleStep90   ラベルを 90 度単位 (0、90) で傾けることができます。 
 WordWrap            ラベルを折り返すことができます。 

既定では、IncreaseFont, DecreaseFont, StaggeredLabels, LabelsAngleStep30, WordWrap になっているので、グラフを縮小表示した場合、ラベルテキストの表示が上記フラグが混合した表示になるので、純粋にフォントサイズのみグラフのサイズに合せて変更したい場合は、IncreaseFont, DecreaseFont だけを設定するようにしてください。

注A
 0    自動で表示される
 1    1 列毎に表示される(結果的には、0 と同じ)
 2    1 列毎に表示される(区切り線が1列飛びに表示)
 5    今回のデータの場合区切り線は、1本だけ表示される
 6    今回のデータの場合区切り線は表示されない(右端の縦線は表示される)
 7〜  今回のデータの場合区切り線は表示されない(右端の縦線も非表示)

注B
 Auto       テキストの文字の方向は、
テキストが表示されるグラフ要素の種類に基づいて自動的に決定されます。
 Horizontal テキストは水平方向に表示されます。 
 Rotated90  テキストは 90 度回転され、上から下方向に配置されます。 
 Rotated270 テキストは 270 度回転され、下から上方向に配置されます。 
 Stacked    テキスト文字は回転されず、上から下方向に配置されます。

各、プロパティ等の設定値は、ご自分で色々変更してみて、どのように表示等が変わるのかを確認するようにしてください。


2011/04/30

VBレスキュー(花ちゃん)
Visual Basic6.0  VB6.0
VB.NET2003/VB2005/VB2008/VB2010