FlexChart for WinForms
軸ラベル
要素 > > 軸ラベル

軸ラベルは大分類を参照するテキストで、軸に沿って表示されます。カテゴリ軸の軸ラベルはカテゴリ名を表示し、値軸の軸ラベルは値を表示します。デフォルトで FlexChart は、データに基づいて 2 つの軸の軸ラベルを自動的に生成し、軸線に沿ったスペースに応じてそれらの軸ラベルを表示または非表示にします。ただし、軸ラベルを自動生成したり配置するときに、最大値と最小値の軸ラベルがチャートに常に表示されるように設定できます。それには、LabelMax および LabelMin プロパティを True に設定します。また、特定の軸のすべてのラベルを非表示にすることもできます。それには、Axis クラスにある Labels プロパティを False に設定します。FlexChart では、データラベルを軸の目盛りマークに対して配置することもできます。それには、LabelAlignment プロパティを設定します。軸ラベルの書式は、Format プロパティを設定することで変更できます。

FlexChart で軸ラベルを設定するには、次のコードを使用します。 このコードは、FlexChart の書式、配置、間隔、および軸の最大レベルを設定します。

//ラベルの軸線に対する相対的な位置を指定します。
flexChart1.AxisX.LabelAlignment = AxisLabelAlignment.Top;
flexChart1.AxisY.Format = "#,##0,,";
//最大軸値を表示します。
flexChart1.AxisY.LabelMax = true;
//最大軸値を四捨五入します。
flexChart1.AxisY.RoundLimits = true;                    
'ラベルの軸線に対する相対的な位置を指定します。
Me.flexChart1.AxisX.LabelAlignment = AxisLabelAlignment.Top
Me.flexChart1.AxisY.Format = "#,##0,,"
'最大軸値を表示します。
Me.flexChart1.AxisY.LabelMax = true
'最大軸値を四捨五入します。
Me.flexChart1.AxisY.RoundLimits = true                  

重なる軸ラベルの管理

軸ラベルの重なりは、一般に、軸ラベルのテキストが長いか、チャートに大量のデータポイントがプロットされている場合に発生します。FlexChart では、軸ラベルを管理するためのオプションが多数用意されています。チャートデータや要件に応じて任意のオプションを選択できます。

重なるラベルのオプション

既に説明したように、デフォルトで FlexChart は自動的に軸ラベルを配置し、スペース不足によって表示できない場合は、重なるラベルを非表示にします。ただし、FlexChart には、重なるラベルに対処するためのさまざまなオプションが用意されています。Axis クラスにある OverlappingLabels プロパティは、デフォルトで Auto に設定されており、重なる軸ラベルは非表示になります。ただし、重なるラベルの表示、トリミング、折り返しを行うこともできます。このプロパティは、OverlappingLabels 列挙に含まれる値を受け取ります。

OverlappingLabel.Auto

自動モード

OverlappingLabel.Show

表示モード

OverlappingLabel.Trim

トリミングモード

OverlappingLabel.Wrap

折り返しモード
//ラベルテキストが有効な幅を超えている場合に折り返します
this.flexChart1.AxisX.OverlappingLabels = OverlappingLabels.WordWrap;
' ラベルテキストが有効な幅を超えている場合に折り返します
me.flexChart1.AxisX.OverlappingLabels = OverlappingLabels.WordWrap                   

Adjust Axis Labels Orientation

FlexChart supports changing orientation of axis label text. Change in label orientation is one of the most used methods to manage the overlapping of axis labels. With FlexChart, you can change the orientation of label text by setting the VerticalText property to true. This property renders the axis label text vertically which is horizontally oriented, by default.

//ラベルの向きを設定します
this.flexChart1.AxisX.Style.VerticalText = true;
this.flexChart1.AxisY.Style.VerticalText = false;
' ラベルの向きを設定します
me.flexChart1.AxisX.Style.VerticalText = true
me.flexChart1.AxisY.Style.VerticalText = false

軸ラベルの回転

重なる軸ラベルに対処するオプションとして、LabelAngle プロパティを設定して、軸ラベルを軸線に対して回転させることもできます。このプロパティは -9090 度の範囲の数値を受け取り、指定された角度で軸ラベルを反時計回りに回転させて、見栄えをよくします。

回転モード

//ラベルを反時計回りに 70 度回転させます
this.flexChart1.AxisX.LabelAngle = 70;
'ラベルを反時計回りに 70 度回転させます
me.flexChart1.AxisX.LabelAngle = 70                  

段違い軸ラベル

軸ラベルを段違いに並べることも、重なる軸ラベルを管理する効果的な方法です。この方法で、軸ラベルを複数の行に整列させ、重ならないように表示できます。 これを実行するには、StaggeredLines プロパティの値を 1(プロパティのデフォルト値)より大きい値に設定します。 

段違いモード

//段違いの行に軸ラベルを表示します
this.flexChart1.AxisX.StaggeredLines = 2;
'段違いの行に軸ラベルを表示します
me.flexChart1.AxisX.StaggeredLines = 2                  

Custom Format Axis Labels

In addition to changing the format of Axis labels using the Format property, FlexChart allows you to specify a custom formatter for axis labels.  It provides Formatter property in the Axis class that lets you create you own custom format and apply it to the axis labels.

The following image shows custom format applied to the y-axis labels.

The following code sets custom format for y-axis labels using the Formatter property. In this example, we created a class named CustomAxisLabelFormatter to define a custom format which is applied to the y-axis labels using the Formatter property.

//カスタム書式を使用して、軸ラベルを書式設定します
this.flexChart1.AxisY.Formatter = new CustomAxisLabelFormatter();
' カスタム書式を使用して、軸ラベルを書式設定します
me.flexChart1.AxisY.Formatter = new CustomAxisLabelFormatter()

The following code showcases the CustomAxisLabelFormatter class that defines the custom format.

internal class CustomAxisLabelFormatter : ICustomFormatter
{
    public string Format(string format, object arg, IFormatProvider formatProvider)
    {
        //カスタム書式を適用します
        var formattedString = string.Format("{0:0,.#k}", arg);

        //カスタムの書式設定された文字列を返します
        return formattedString;
    }
}
Friend Class CustomAxisLabelFormatter Inherits ICustomFormatter

 Public Function Format(ByVal format As String, ByVal arg As Object, ByVal formatProvider As IFormatProvider) As String
     Dim formattedString = String.Format("{0:0,.#k}", arg)
     Return formattedString
 End Function
End Class