使用不同颜色显示Flex AreaSeries的正负值

在最近项目中,要求对数据系列正负值使用不同颜色来显示。也许你要问为什么不用Flex ColumnSeries呢?然后通过filterFunction设置不同颜色多简单。问题是数据系列的数据点太多,使用ColumnSeries性能不佳。因此只好用AreaSeries,事实上,设定AreaSeries的filterFunction根本不起作用。但我们可以通过设定自定义的areaRenderer来实现。

最大的挑战在于从正到负的值向下画线时,应改变值之间的颜色,反之亦然。幸运的是,借助renderedBase属性可获取零点和三角函数信息,从而找出其中的重要点,我们需要分割折线并使用不同的颜色来绘制。

点击此处查看该实例最终效果,点击此处下载该实例的源码。

AreaSeriesRenderer类有四个公有属性,分别对应正负值的填充样式和线条样式。为了方便,本实例已经设定初始化值。

发表评论