| 包 | mx.charts |
| 类 | public class CategoryAxis |
| 继承 | CategoryAxis AxisBase EventDispatcher Object |
| 实现 | IAxis |
图表中使用的 CategoryAxis 不会从包含的图表中继承其 dataProvider 属性。必须在 CategoryAxis 上显式设置 dataProvider 属性。
当您可以使用相同的 dataProvider 为图表提供数据并为 CategoryAxis 提供类别时,则 CategoryAxis 可以优化呈现效果(如果其 dataProvider 相对静止)。如果可能,请确保类别相对静止,并将更改的数据存储在单独的 dataProviders 中。
dataProvider 属性可以接受字符串数组,也可以接受具有可指定类别名称的属性的记录(对象)数组。如果指定了 categoryField 属性,则 CategoryAxis 假定 dataProvider 是一个对象数组。如果 categoryField 为 null,则 CategoryAxis 假定 dataProvider 是一个字符串数组。
隐藏 MXML 语法The <mx:CategoryAxis> tag inherits all the properties
of its parent classes and adds the following properties:
<mx:CategoryAxis
Properties
categoryField="null"
dataFunction="No default"
dataProvider="No default"
labelFunction="No default"
padding="Default depends on chart type"
ticksBetweenLabels="true"
/>
另请参见
| 属性 | 定义方 | ||
|---|---|---|---|
| baseline : Number [只读 (read-only)] 轴的基线位置。 | CategoryAxis | ||
| categoryField : String 指定包含标签文本的数据提供程序的字段。 | CategoryAxis | ||
![]() | chartDataProvider : Object [只写] 分配给封闭图表的数据提供程序。 | AxisBase | |
![]() | constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | |
| dataFunction : Function 指定一个方法,其返回值应可用作当前项目的 categoryValue。如果设置了此属性,则自定义数据函数的返回值优先于 categoryField。自定义 dataFunction 使用以下签名:function_name (axis:CategoryAxis, item:Object):Object { ... | CategoryAxis | ||
| dataProvider : Object 指定包含标签名称的数据源。 | CategoryAxis | ||
![]() | displayName : String 轴的名称。 | AxisBase | |
| labelFunction : Function 指定一个函数,用于定义为 CategoryAxis 的 dataProvider 中的各个项目生成的标签。 | CategoryAxis | ||
| padding : Number 指定在屏幕上呈现数据时添加到轴上任意一端的填充。 | CategoryAxis | ||
![]() | prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object | |
| ticksBetweenLabels : Boolean 指定轴上主刻度线相对于类别标签的位置。 | CategoryAxis | ||
![]() | title : String 沿该轴显示的标题文本。 | AxisBase | |
![]() | unitSize : Number [只读 (read-only)] 由该轴表示的一个数据单位大小。 | AxisBase | |
| 方法 | 定义方 | ||
|---|---|---|---|
构造函数。 | CategoryAxis | ||
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void 使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | |
![]() | 在图表数据更改时触发通知范围对象的事件。 | AxisBase | |
![]() | 将事件调度到事件流中。 | EventDispatcher | |
将任意类型的一组值过滤为可以映射的一组数字。 | CategoryAxis | ||
格式化值以便在 DataTip 中显示。 | CategoryAxis | ||
确定范围以估计轴标签的内容。 | CategoryAxis | ||
获取显示的标签文本。 | CategoryAxis | ||
![]() | 检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | |
![]() |
指示对象是否已经定义了指定的属性。 | Object | |
沿轴将一个位置映射回数字数据值。 | CategoryAxis | ||
![]() |
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | |
将任意类型的一组值转换为一组可以转换为屏幕坐标的数字。 | CategoryAxis | ||
确定轴处理重叠标签的方式。 | CategoryAxis | ||
![]() |
指示指定的属性是否存在、是否可枚举。 | Object | |
当在不发生重叠的情况下 AxisRenderer 无法清楚地显示标签时调用,像 Axis 对象减少标签组中标签的数目一样。 | CategoryAxis | ||
![]() | 使用轴的每个 DataTransform 都将自身注册到该轴。 | AxisBase | |
![]() | 从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | |
![]() |
设置循环操作动态属性的可用性。 | Object | |
![]() |
返回指定对象的字符串表示形式。 | Object | |
将一组来自数据空间的值映射到屏幕空间。 | CategoryAxis | ||
![]() | 使用轴的每个 DataTransform 都将自身注册到该轴。 | AxisBase | |
更新图表。 | CategoryAxis | ||
![]() |
返回指定对象的原始值。 | Object | |
![]() | 检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。 | EventDispatcher | |
| baseline | 属性 |
baseline:Number [只读 (read-only)] 轴的基线位置。当未指定最小值时,一些系列(如 ColumnSeries 或 AreaSeries)将使用此值确定填充区域的基础。
public function get baseline():Number| categoryField | 属性 |
categoryField:String [读写]
指定包含标签文本的数据提供程序的字段。如果此属性为 null,则 CategoryAxis 假定 dataProvider 包含字符串数组。
默认值为 null.
public function get categoryField():String public function set categoryField(value:String):void| dataFunction | 属性 |
dataFunction:Function [读写]
指定一个方法,其返回值应可用作当前项目的 categoryValue。如果设置了此属性,则自定义数据函数的返回值优先于 categoryField
自定义 dataFunction 使用以下签名:
function_name
(axis:CategoryAxis, item:Object):Object { ... }
axis 是使用此 dataFunction 的当前轴,item 是所考虑的 dataProvider 中的项目。此函数返回一个对象。
例如,自定义 dataFunction 的一种用法是从包含带有嵌套字段的项目的 dataProvider 中返回值。
public function get dataFunction():Function public function set dataFunction(value:Function):voidpublic function myFunction(axis:CategoryAxis,item:Object):Object {
return(item.Country.State);
}
| dataProvider | 属性 |
dataProvider:Object [读写]
指定包含标签名称的数据源。dataProvider 可以是字符串 Array、对象 Array 或者任何实现了 IList 或 ICollectionView 接口的对象。如果 dataProvider 是字符串 Array,请确保将 categoryField 属性设置为 null。如果 dataProvider 是对象 Array,请将 categoryField 属性设置为包含标签文本的字段的名称。
public function get dataProvider():Object public function set dataProvider(value:Object):void| labelFunction | 属性 |
labelFunction:Function [读写]
指定一个函数,用于定义为 CategoryAxis 的 dataProvider 中的各个项目生成的标签。如果未提供 labelFunction,则轴标签将默认为类别自身的值。
CategoryAxis 的 labelFunction 方法使用以下签名:
function
function_name
(
categoryValue
:Object,
previousCategoryValue
:Object,
axis
:CategoryAxis,
categoryItem
:Object):String { ... }
位置:
categoryValue 是所表示的类别的值。
previousCategoryValue 是轴上前一个类别的值。
axis 是将要呈现的 CategoryAxis。
categoryItem 是将要呈现的 dataProvider 中的项目。
Flex 将返回的 String 显示为轴标签。
如果未设置 categoryField 属性,则该值与 categoryValue 属性相同。
public function get labelFunction():Function public function set labelFunction(value:Function):void| padding | 属性 |
padding:Number [读写] 指定在屏幕上呈现数据时添加到轴上任意一端的填充。如果设置为 0,则将第一个类别映射到轴的最前端,将最后一个类别映射到末端。如果设置为 0.5,则保留类别一半宽度的填充,该类别应位于轴的前端与第一个类别之间以及最后一个类别和轴的末端之间的轴上。
这对于呈现内容超出类别范围的图表类型(如列和栏)很有用。但是,当用作 LineChart 或 AreaChart 中的 horizontalAxis 时,将被重置为 0。
默认值为 0.5.
public function get padding():Number public function set padding(value:Number):void| ticksBetweenLabels | 属性 |
ticksBetweenLabels:Boolean [读写]
指定轴上主刻度线相对于类别标签的位置。如果为 true,则刻度线(以及所有相关网格线)将显示在各类别之间。如果为 false,则刻度线将显示在类别的中间部分,与标签对齐。
public function get ticksBetweenLabels():Boolean public function set ticksBetweenLabels(value:Boolean):void| CategoryAxis | () | 构造函数 |
public function CategoryAxis()构造函数。
| filterCache | () | 方法 |
public function filterCache(cache:Array, field:String, filteredString:String):void将任意类型的一组值过滤为可以映射的一组数字。
参数
cache:Array — 可从中读取和存储转换后的值的对象数组。 | |
field:String — 包含过滤之前的值的缓存 Array 中所含的对象域。 | |
filteredString:String — 存储过滤后的值的缓存 Array 中所含的对象域。 |
| formatForScreen | () | 方法 |
public function formatForScreen(value:Object):String格式化值以便在 DataTip 中显示。返回用户可读的字符串。
参数
value:Object — 转换为 String 类型的值。 |
String — DataTip 的文本。 |
| getLabelEstimate | () | 方法 |
public function getLabelEstimate():AxisLabelSet
确定范围以估计轴标签的内容。轴几乎立即调用 getLabels() 方法以获取真实值。轴使用估计的值调整图表边距,因此只要估计的标签和实际标签(由 getLabels() 方法返回)间存在差别,就会调整标签以满足要求。
当返回估计值时,轴只需返回最小和最大标签。如果标签组完全是静态的,不会根据轴大小在屏幕上显示,则轴可通过此函数返回整个标签组,并将估计值标记为准确值。
返回AxisLabelSet — 一个 AxisLabel 对象 Array。 |
| getLabels | () | 方法 |
public function getLabels(minimumAxisLength:Number):AxisLabelSet获取显示的标签文本。当 Flex 调用此方法时,轴已确定标签的最小长度。
参数
minimumAxisLength:Number — 轴的最小长度(以像素为单位)。轴长可以大于此值,但不可以小于此值。 |
AxisLabelSet — 一个 AxisLabel 对象数组。 |
| invertTransform | () | 方法 |
public function invertTransform(value:Number):Object沿轴将一个位置映射回数字数据值。
参数
value:Number — 轴的范围。此参数应介于 0 和 1 之间,0 表示轴的下限,1 表示轴的上限。 |
Object — 包含转换后的值的对象。 |
| mapCache | () | 方法 |
public function mapCache(cache:Array, field:String, convertedField:String, indexValues:Boolean = false):void将任意类型的一组值转换为一组可以转换为屏幕坐标的数字。
参数
cache:Array — 可从中读取和存储转换后的值的对象数组。 | |
field:String — 包含转换之前的值的缓存 Array 中所含的对象域。 | |
convertedField:String — 存储转换后的值的缓存 Array 中所含的对象域。 | |
indexValues:Boolean (default = false) —
如果要映射的值是索引值,则此参数为 true;如果这些值是自然数据值,则此参数为 false。
|
| preferDropLabels | () | 方法 |
public function preferDropLabels():Boolean
确定轴处理重叠标签的方式。通常,数字范围返回 true,而基于离散值的范围不返回此值。您可以通过直接在轴上设置此属性来覆盖此属性。
Boolean —
如果可以在不丢失数据的情况下删除标签,则为 true;否则为 false。
|
| reduceLabels | () | 方法 |
public function reduceLabels(intervalStart:AxisLabel, intervalEnd:AxisLabel):AxisLabelSet当在不发生重叠的情况下 AxisRenderer 无法清楚地显示标签时调用,像 Axis 对象减少标签组中标签的数目一样。此方法传递重叠的两个标签。
参数
intervalStart:AxisLabel — 标签重叠处间隔的开始位置。 | |
intervalEnd:AxisLabel — 标签重叠处间隔的结束位置。 |
AxisLabelSet — 通过减少标签的数目来解决重叠问题的新标签组。 |
| transformCache | () | 方法 |
public function transformCache(cache:Array, field:String, convertedField:String):void将一组来自数据空间的值映射到屏幕空间。
参数
cache:Array — 可从中读取和存储映射后的值的对象 Array。 | |
field:String — 包含映射之前的值的缓存 Array 中所含的对象域。 | |
convertedField:String — 存储映射后的值的缓存 Array 中所含的对象域。 |
| update | () | 方法 |
public function update():void更新图表。可在每个帧中多次调用此方法。
<?xml version="1.0"?>
<!-- Simple example to demonstrate the HLOCChart control. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
private var stockDataAC:ArrayCollection = new ArrayCollection( [
{ Date: "25-Jul", Open: 40.55, High: 40.75, Low: 40.24, Close:40.31},
{ Date: "26-Jul", Open: 40.15, High: 40.78, Low: 39.97, Close:40.34},
{ Date: "27-Jul", Open: 40.38, High: 40.66, Low: 40, Close:40.63},
{ Date: "28-Jul", Open: 40.49, High: 40.99, Low: 40.3, Close:40.98},
{ Date: "29-Jul", Open: 40.13, High: 40.4, Low: 39.65, Close:39.95},
{ Date: "1-Aug", Open: 39.00, High: 39.50, Low: 38.7, Close:38.6},
{ Date: "2-Aug", Open: 38.68, High: 39.34, Low: 37.75, Close:38.84},
{ Date: "3-Aug", Open: 38.76, High: 38.76, Low: 38.03, Close:38.12},
{ Date: "4-Aug", Open: 37.98, High: 37.98, Low: 36.56, Close:36.69},
{ Date: "5-Aug", Open: 36.61, High: 37, Low: 36.48, Close:36.86} ]);
]]>
</mx:Script>
<!-- Define custom Stroke for the wick and ticks. -->
<mx:Stroke id="s1" color="0x000000" weight="5" joints="bevel" caps="square"/>
<mx:Panel title="HLOCChart Control Example" height="100%" width="100%">
<mx:HLOCChart id="hlocchart" height="100%" width="100%"
paddingRight="5" paddingLeft="5"
showDataTips="true" dataProvider="{stockDataAC}">
<mx:verticalAxis>
<mx:LinearAxis id="vaxis" baseAtZero="false" title="Price"/>
</mx:verticalAxis>
<mx:horizontalAxis>
<mx:CategoryAxis id="haxis" categoryField="Date" title="Date"/>
</mx:horizontalAxis>
<mx:horizontalAxisRenderers>
<mx:AxisRenderer axis="{haxis}" canDropLabels="true"/>
</mx:horizontalAxisRenderers>
<mx:series>
<mx:HLOCSeries
openField="Open"
highField="High"
lowField="Low"
closeField="Close"
stroke="{s1}"
openTickStroke="{s1}"
closeTickStroke="{s1}"
openTickLength="7"
closeTickLength="7"
/>
</mx:series>
</mx:HLOCChart>
</mx:Panel>
</mx:Application>