FlexChart for WinForms
軸のグループ化
要素 > > 軸のグループ化

軸のグループ化とは、さまざまなレベルでのデータの読みやすさと分析を向上させるために、可能な場合に軸ラベルをグループ化することです。データには大まかに、カテゴリ、数値、DateTime 形式の 3 つのタイプがあり、軸のグループ化の実装方法も、このタイプによって異なります。

FlexChart では、この 3 つのタイプの実装はすべて、以下の各セクションで説明する方法を使用して実行できます。 また、FlexChart が提供する Axis クラスの GroupSeparator プロパティを使用すると、グループの区切り文字を表示してグループの区切りを明確に表示できます。さらに、GroupVisibilityLevel プロパティを設定して、ユーザーがグループを展開/折りたたみできるようにすることもできます。このプロパティは、整数値を受け取り、表示される折りたたみ可能なグループのレベルを制限します。GroupStyle プロパティを使用して、グループのスタイルを設定することもできます。

カテゴリ軸のグループ化

名前が示すように、このタイプのグループ化は、データがフラットデータであっても階層化データであっても、本質的にカテゴリ別である場合に行われます。たとえば、国ごとのデータを表示しながら、国を大陸ごとにグループ化し、各大陸のデータを分析することもできます。別の例として、月ごとのデータを分析する際に、データを四半期にグループ化すると、四半期ごとの分析を容易に行うことができます。

FlexChart では、カテゴリ軸のグループ化を実装するために、GroupNames プロパティが提供されています。階層化データの場合は、GroupItemsPath プロパティも指定して、親子関係を確立する必要があります。

カテゴリ軸のグループ化

// X軸をグループするフィールドを定義します
flexChart1.AxisX.GroupNames = "Continent";

// X軸のグループ区切り線の表示方法を定義します
this.flexChart1.AxisX.GroupSeparator = AxisGroupSeparator.Vertical;

// グループを折りたたみ可能にするかどうかを定義します
this.flexChart1.AxisX.GroupVisibilityLevel = -1;
' X軸をグループするフィールドを定義します
flexChart1.AxisX.GroupNames = "Continent"

' X軸のグループ区切り線の表示方法を定義します
Me.flexChart1.AxisX.GroupSeparator = AxisGroupSeparator.Vertical

' グループを折りたたみ可能にするかどうかを定義します
Me.flexChart1.AxisX.GroupVisibilityLevel = -1

数値軸のグループ化

数値軸のグループ化は、数値データを、ユーザーが簡単に関連付けることができるカテゴリまたは範囲にグループ化するために行います。たとえば、Y 軸にプロットされた温度データを、低域、中域、高域の範囲にグループ化すると、より便利です。FlexChart で数値タイプの軸にグループ化を実装するには、IAxisGroupProvider インタフェースのインスタンスを作成し、それを GroupProvider プロパティに割り当てる必要があります。このインタフェースでは、GetLevels および GetRanges メソッドも提供されており、それぞれグループレベルの数と指定されたレベルの範囲値のリストを返します。

数値軸のグループ化

// Y軸のグループを作成するためのロジックを定義するカスタムGroupProviderを使用します
this.flexChart1.AxisY.GroupProvider = new MyGroupProvider();


// Y軸のグループ区切り線の表示方法を定義します
this.flexChart1.AxisY.GroupSeparator = AxisGroupSeparator.Grid;
' Y軸のグループを作成するためのロジックを定義するカスタムGroupProviderを使用します
Me.flexChart1.AxisY.GroupProvider = New MyGroupProvider()

' Y軸のグループ区切り線の表示方法を定義します
Me.flexChart1.AxisY.GroupSeparator = AxisGroupSeparator.Grid

DateTime 軸のグループ化

DateTime タイプのデータは、日、週、月、四半期、または年単位にグループ化することができるため、DateTime タイプの軸も、これらすべての方法でグループ化できます。たとえば、下の例では、X 軸にプロットされた日単位のデータを週単位、さらには月単位に分類しています。FlexChart の DateTime 軸にグループ化を実装するには、GroupProvider プロパティを DateTimeGroupProvider クラスのオブジェクトに設定する必要があります。 また、このクラスの GroupTypes プロパティを使用して、追加するグループのタイプを(TimeUnits で)指定する必要があります。DateTimeGroupProvider クラスでは、GetLevels および GetRanges メソッドも提供されており、それぞれグループレベルの数と指定されたレベルの範囲値のリストを返します。

DateTime 軸のグループ化

// DateTimeGroupProviderの新しいインスタンスを作成します
var dtGrpProvider = new DateTimeGroupProvider();
            
// 時間単位でグループを追加します
dtGrpProvider.GroupTypes.Add(TimeUnits.Week);
dtGrpProvider.GroupTypes.Add(TimeUnits.Month);
            
// DateTimeGroupProviderオブジェクトを割り当てます
this.flexChart1.AxisX.GroupProvider = dtGrpProvider; 
            
// X軸のグループ区切り線の表示方法を定義します
this.flexChart1.AxisX.GroupSeparator = AxisGroupSeparator.Horizontal;            
' DateTimeGroupProviderの新しいインスタンスを作成します
Dim dtGrpProvider As DateTimeGroupProvider = New DateTimeGroupProvider()

' 時間単位でグループを追加します
dtGrpProvider.GroupTypes.Add(TimeUnits.Week)
dtGrpProvider.GroupTypes.Add(TimeUnits.Month)

' DateTimeGroupProviderオブジェクトを割り当てます
Me.flexChart1.AxisX.GroupProvider = dtGrpProvider

' X軸のグループ区切り線の表示方法を定義します
Me.flexChart1.AxisX.GroupSeparator = AxisGroupSeparator.Horizontal