在Chart上画一条水平基线的方法

用AS画一条线很简单,但如何在Chart上画平均线呢?下面介绍三种常用方法。

  1. 使用DataProvider。从数据提供者着手,将平均线看成是项目的y 值相等的直线。这种方法最简单,不用写多余的代码,不过由于DataProvider的数据项目会多出一个属性列,因此数据越多,效能越差。代码见DataProvider.mxml。
  2. 使用CartesianDataCanvas。在CartesianDataCanvas上可以使用图形API 很轻松地画图形。传递给图形API 的值为数据坐标形式,而非屏幕坐标形式。这种方法最实用,不过位于CartesianDataCanvas下层的对象会失去交互性。代码见CartesianDataCanvas.mxml。
  3. 使用DataTransform。当然,我们也可以在其它容器(如Cavas)上画平均线,不过首先得利用dataTransform属性将坐标值转换为屏幕坐标。代码见DataTransform.mxml。

暂时在开发过程中用第一种:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            []
            public var dataCollection:ArrayCollection = new ArrayCollection([
                {Month: "Jan", Income: 2000, Average:1840},
                {Month: "Feb", Income: 1800, Average:1840},
                {Month: "Mar", Income: 1400, Average:1840},
                {Month: "Apr", Income: 1600, Average:1840},
                {Month: "May", Income: 2400, Average:1840}]);     
            ]]>
    </mx:Script>
    <mx:Panel>
        <mx:LineChart id="myChart" dataProvider="{dataCollection}" 
            showDataTips="true" seriesFilters="[]">
            <mx:horizontalAxis>
                <mx:CategoryAxis categoryField="Month"/>
            </mx:horizontalAxis>
            <mx:series>
                <mx:LineSeries xField="Month" yField="Income" displayName="Income"/>
                <mx:LineSeries xField="Month" yField="Average" displayName="Average"
                    lineStroke="{myStroke}" interactive="false" itemRenderer="utils.AverageLineRenderer"/>
            </mx:series>
        </mx:LineChart>
    </mx:Panel>
    <mx:Stroke id="myStroke" color="0x000099" weight="1"/>
</mx:Application>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值