轴分组是指尽可能对轴标签进行分组,以便在不同级别上获得更好的可读性和数据分析。从广义上讲,可以有三种类型的数据,轴分组的实现也有所不同:分类、数字和日期时间格式。
在 FlexChart 中,所有这三个实现都可以使用下面各节中讨论的方法完成。FlexChart 还提供了 Axis 类的 GroupSeparator 属性,该属性允许您显示组分隔符,以便清晰、更清晰地划分组。此外,您可以允许用户通过设置 GroupVisibilityLevel 属性来展开或折叠这些组,该属性接受整数值并限制可见可折叠组的级别。还可以使用 GroupStyle 属性设置组的样式。
顾名思义,这种类型的分组是在数据本质上是分类的(平面或分层)时完成的。例如,在显示国家/地区数据的同时,您还可以根据大陆对国家/地区进行分组并分析每个大陆的数据。另一个很好的例子是分析按月的数据,这些数据可以分组为季度,以促进季度分析。
FlexChart 提供 GroupNames 属性来实现分类轴上的分组。对于分层数据,还需要指定 GroupItemsPath 属性以建立父子关系。
Vb.Net |
'Defining by which field to Group AxisX flexChart1.AxisX.GroupNames = "Continent" 'Defining how group separator lines should appear for AxisX flexChart1.AxisX.GroupSeparator = AxisGroupSeparator.Vertical ' Defining whether to make the groups collapsible and at what level flexChart1.AxisX.GroupVisibilityLevel = -1 |
C# |
//Defining by which field to Group AxisX flexChart1.AxisX.GroupNames = "Continent"; //Defining how group separator lines should appear for AxisX flexChart1.AxisX.GroupSeparator = AxisGroupSeparator.Vertical; // Defining whether to make the groups collapsible and at what level flexChart1.AxisX.GroupVisibilityLevel = -1; |
数字轴分组是为了将数字数据分组到用户可以轻松关联的类别或范围内。例如,将绘制在 Y 轴上的温度数据分组为低、中和高范围会更有用。若要在 FlexChart 中的数值类型轴上实现分组,需要创建 IAxisGroupProvider 接口的实例,并将其分配给 GroupProvider 属性。该接口还提供了 GetLevels 和 GetRanges 方法,它们分别返回给定级别的组级别数和范围值列表。
Vb.Net |
'Using custom GroupProvider that defines the logic for creating AxisY group flexChart1.AxisY.GroupProvider = New MyGroupProvider() 'Defining how group separator lines should appear for AxisY flexChart1.AxisY.GroupSeparator = AxisGroupSeparator.Grid |
C# |
//Using custom GroupProvider that defines the logic for creating AxisY group flexChart1.AxisY.GroupProvider = new MyGroupProvider(); //Defining how group separator lines should appear for AxisY flexChart1.AxisY.GroupSeparator = AxisGroupSeparator.Grid; |
日期时间类型数据可以分组为天、周、月、季度或年,因此日期时间类型轴也可以以所有这些方式分组。例如,下面的示例将绘制在 X 轴上的日期数据分类为周,然后进一步分类为月。若要在 FlexChart 中的 DateTime 轴上实现分组,需要将 GroupProvider 属性设置为日期时间组提供程序类的对象。还需要使用此类的 GroupTypes 属性指定要添加的组的类型(以时间单位为单位)。类还提供了 GetLevels 和 GetRanges 方法,它们分别返回给定级别的组级别数和范围值列表。
Vb.Net |
'Create new instance of DateTimeGroupProvider Dim dtGrpProvider As DateTimeGroupProvider = New DateTimeGroupProvider() ' Add groups in the terms of time units dtGrpProvider.GroupTypes.Add(TimeUnits.Week) dtGrpProvider.GroupTypes.Add(TimeUnits.Month) ' Assign the DateTimeGroupProvider object flexChart1.AxisX.GroupProvider = dtGrpProvider ' Define how group separator lines should appear for AxisX flexChart1.AxisX.GroupSeparator = AxisGroupSeparator.Horizontal |
C# |
//Create new instance of DateTimeGroupProvider var dtGrpProvider = new DateTimeGroupProvider(); // Add groups in the terms of time units dtGrpProvider.GroupTypes.Add(TimeUnits.Week); dtGrpProvider.GroupTypes.Add(TimeUnits.Month); // Assign the DateTimeGroupProvider object flexChart1.AxisX.GroupProvider = dtGrpProvider; // Define how group separator lines should appear for AxisX flexChart1.AxisX.GroupSeparator = AxisGroupSeparator.Horizontal; |