ChartControl图表组件ArgumentScaleType/ValueScaleType轴的刻度类型-C/S开发框架
作者:csframework|C/S框架网  发布日期:2021/12/30 18:34:52

ChartControl图表组件ArgumentScaleType/ValueScaleType轴的刻度类型-C/S开发框架

本文档详细说明了在 XtraCharts 中不同的 轴刻度类型 的使用: 它们的目标、实现和功能,本文档由下列小节组成。

刻度类型概述

刻度类型 是轴的最重要的特征之一。 轴的刻度类型基于相关联的 系列刻度类型,轴的刻度类型是通过下列属性定义的:

SeriesBase.ArgumentScaleType 属性,定义 X 轴 (参数轴);

SeriesBase.ValueScaleType 属性,定义 Y 轴 (取值轴)。

通常,指定的刻度类型应该适合于图表 数据源 中的下层数据类型。

注意

为系列指定恰当的刻度类型是至关重要的,以便于把刻度类型特定选项应用于系列和轴,并且实现在图表中正确地呈现数据。 这是因为在默认情况下,性质 刻度类型被指派到 SeriesBase.ArgumentScaleType 属性,一个共同的错误是把它用于 日期时间 或 数值 数据。

在 XtraCharts 中可用的三种刻度类型是:

  • 数值
  • 日期时间
  • 性质

注意,对于 SeriesBase.ValueScaleType 属性,只能为它指派 ScaleType.Numerical (数值) 或 ScaleType.DateTime (日期时间) 刻度类型,因为取值轴 (Y-轴) 不能按照性质刻度被呈现。

在指定了刻度类型之后,就可以访问它的特定选项,例如以适合于选中刻度类型的方式来设置 轴标签 文本的格式。

下面的插图展示了一个图表的外观,它的 X 轴是 日期时间 刻度类型 (格式: 只显示月份),并且 Y 轴是 数值 刻度类型 (格式: 货币格式)。

ChartControl图表组件ArgumentScaleType/ValueScaleType轴的刻度类型-C/S开发框架

在本文档下面的小节中描述了可用的刻度类型、它们的目标和功能。

数值刻度类型

当 SeriesBase.ArgumentScaleType 或 SeriesBase.ValueScaleType 属性值被设置为 ScaleType.Numerical 时,数值 刻度类型就被指派到对应的 (X 或 Y) 轴。

数值刻度类型把系列点的取值或参数呈现为轴上的数值取值。 因为 XtraCharts 把这些取值作为数值处理,因此可以对它们执行特殊的操作,否则就是不可能的。

注意

对于参数轴 (X-轴),识别它的刻度类型是否为 性质 刻度类型是重要的,因为性质刻度类型把取值作为 字符串 处理。 一个共同的错误,是由于在默认情况下为 SeriesBase.ArgumentScaleType 属性设置了性质刻度类型而产生的。

也要注意,在默认情况下为 SeriesBase.ValueScaleType 属性指派了数值刻度类型。 这样,在处理日期时间取值时,应该把此属性人工设置为 日期时间 刻度类型。

当指定了数值刻度类型时,AxisBase.NumericOptions 属性就变得可用。 在设计时刻,在选中所需的轴之后,就可以在 属性 窗口中找到此属性。

ChartControl图表组件ArgumentScaleType/ValueScaleType轴的刻度类型-C/S开发框架

它被用于访问下面的两个属性:

  • NumericOptions.Format 属性,确定在轴标签中数值数据的显示格式 (例如 100、1.00E+002、100 %、$100 等)。 注意,实际的格式由 NumericOptions.Format 属性确定,并依赖于用户计算机的区域设置 (例如表示小数点、百分数、货币的符号等)。
  • NumericOptions.Precision 属性,确定数值的小数位数。

要了解 NumericOptions.Format 属性的可用格式的完整说明,请参阅 NumericFormat 枚举的说明。

数值刻度类型的另一项有用的功能,是可以通过 AxisBase.Logarithmic 和 AxisBase.LogarithmicBase 属性,以对数来呈现轴的取值。

ChartControl图表组件ArgumentScaleType/ValueScaleType轴的刻度类型-C/S开发框架

当图表的系列有较大的数据范围时,这些选项是很有用的。 同时,图表的数值轴可以使用等价对数来显示所有数值取值。 举例来说,如果 AxisBase.LogarithmicBase 属性值被设置为 10,在 10 和 1,000,000 之间只有 5 个轴刻度段,这样就可以以更紧凑且清晰的方式来呈现图表的数据。 下面的插图展示了此属性的作用。

ChartControl图表组件ArgumentScaleType/ValueScaleType轴的刻度类型-C/S开发框架

注意,如果启用了 AxisBase.Logarithmic 刻度,那么 AxisBase.GridSpacing 属性值就被舍入调整为整数值。

日期时间刻度类型

当 SeriesBase.ArgumentScaleType 或 SeriesBase.ValueScaleType 属性值被设置为 ScaleType.DateTime 时,就意味着 日期时间 刻度类型被指派到对应的 (X 或 Y) 轴。

注意

把日期时间刻度类型与 性质、数值 刻度类型区别开是重要的,因为在后两种刻度类型中,取值被作为字符串或数值处理,这样就不可能使用日期时间特定操作。 一个共同的错误,是由于在默认情况下为SeriesBase.ArgumentScaleType 属性设置了性质刻度类型、并且为 SeriesBase.ValueScaleType 属性设置了数值刻度类型而产生的。 因此,在处理日期时间数据时,应该人工把这两个属性设置为所需的刻度类型。

使用日期时间刻度类型时,可以从轴刻度中去除节假日和周末。 要学习更多相关内容,请参阅 日期时间数据呈现。

性质刻度类型

当 SeriesBase.ArgumentScaleType 属性值被设置为 ScaleType.Qualitative 时,就意味着 性质 刻度类型被指派到对应的 X 轴。

性质刻度类型把系列点的取值在轴上呈现为序数文本取值 (例如 A、B、III、IV)。 由于这种刻度类型只能被指派到 SeriesBase.ArgumentScaleType 属性,因此仅对参数轴 (X 轴) 可用。

注意

在默认情况下,性质刻度类型被指派到 SeriesBase.ArgumentScaleType 属性。 为系列指定这种刻度类型时,轴的取值被存储为字符串。 因此,如果系列使用了 数值 或 日期时间 参数数据类型,就应该人工把系列的 SeriesBase.ArgumentScaleType 属性指定为适当的刻度类型。

注意,选用性质刻度类型不会阻止使用 轴的可视范围和滚动范围。 但是,在这种情况下应该使用适合于系列的取值,来彻底指定 AxisRange.MinValue 和 AxisRange.MaxValue 属性。 在这种情形中要注意,真正的轴取值会被内部转换为数值取值,从而使内部计算成为可能。 可以通过 AxisRange.MinValueInternal 和 AxisRange.MaxValueInternal 属性,来确定性质取值的内部等价数值。

ChartControl图表组件ArgumentScaleType/ValueScaleType轴的刻度类型-C/S开发框架

在多个系列与一个性质轴相关联的情况下,就可能有不同的场景,在下面简要说明了这些场景。

如果这些系列有不同的参数,那么就沿 X 轴接连绘制系列,并且连续地显示轴的取值。 下面的插图展示了这一种情况。

ChartControl图表组件ArgumentScaleType/ValueScaleType轴的刻度类型-C/S开发框架

在这种情形中,可能需要使用 辅助轴。 这样,实现结果就可能类似于下面的插图所展示的那样。

ChartControl图表组件ArgumentScaleType/ValueScaleType轴的刻度类型-C/S开发框架

另一种选择是在单独的 窗格 中绘制系列。 下面的插图展示了这样选择的结果。

ChartControl图表组件ArgumentScaleType/ValueScaleType轴的刻度类型-C/S开发框架

如果与同一个轴相关联的不同系列的字符串参数是一致的,那么就同时在相同的轴取值上绘制系列,如同下图所展示的那样。

ChartControl图表组件ArgumentScaleType/ValueScaleType轴的刻度类型-C/S开发框架

此外,仍然可以使用 辅助轴 和附加的 窗格。

在下面的插图中显示了上述两种情况的组合。

ChartControl图表组件ArgumentScaleType/ValueScaleType轴的刻度类型-C/S开发框架

上一篇 下一篇