16.9.重叠多个图表
16.9.1. 问题
我想要使用不同的类型的图表来表示重叠数据集合。
16.9.2. 解决办法
使用列状图来装载复合图表,然后使用<mx:Series>标签来定义复合图表和他们的属性
16.9.3. 讨论
任何图表都可以在其数列数组中包含复合图表数列,每个数组可以代表不同的字段,这些字段可以由一个数据提供器控制,也可以由多个不同的数据提供器控制。在以下的例子中,是用列状图承载复合数列数组
在列状图中,复合列状图对象将被一个叠着一个来渲染。
我想要使用不同的类型的图表来表示重叠数据集合。
16.9.2. 解决办法
使用列状图来装载复合图表,然后使用<mx:Series>标签来定义复合图表和他们的属性
16.9.3. 讨论
任何图表都可以在其数列数组中包含复合图表数列,每个数组可以代表不同的字段,这些字段可以由一个数据提供器控制,也可以由多个不同的数据提供器控制。在以下的例子中,是用列状图承载复合数列数组
+展开
-XML
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="genData()">
<mx:Script>
<![CDATA[
private var DJIA:Number = Math.random()*50 - 20;
private var NASDAC:Number = DJIA - Math.random() * 20;
private var SP500:Number = Math.random()*40;
public function genData():void
{
// assigning the data that the chart is bound to
// is best done via a local variable that is then
// set to the chart data, rather than adding values to the
// dataprovider of the chart
var newArr:Array = [];
for(var i:int = 0; i<10; i++)
{
DJIA = DJIA + Math.random()*10 - 5;
NASDAC = NASDAC - Math.random() * 5;
SP500 = Math.random()*40;
newArr.push({"DJIA": DJIA, "NASDAC": NASDAC,
"SP500": SP500 });
}
chartData = newArr;
}
[Bindable]
public var chartData:Array = [];
]]>
</mx:Script>
<mx:SeriesInterpolate id="eff" elementOffset="1"
minimumElementDuration="40" duration="2000"/>
<mx:Button click="genData()" label="Generate data"/>
<mx:ColumnChart y="100" width="100%" height="100%"
dataProvider="{chartData}">
<mx:series>
<mx:ColumnSeries showDataEffect="{eff}"
yField="DJIA"/>
<mx:ColumnSeries showDataEffect="{eff}"
yField="NASDAC"/>
<mx:ColumnSeries showDataEffect="{eff}"
yField="SP500"/>
</mx:series>
</mx:ColumnChart>
</mx:Application>
<mx:Script>
<![CDATA[
private var DJIA:Number = Math.random()*50 - 20;
private var NASDAC:Number = DJIA - Math.random() * 20;
private var SP500:Number = Math.random()*40;
public function genData():void
{
// assigning the data that the chart is bound to
// is best done via a local variable that is then
// set to the chart data, rather than adding values to the
// dataprovider of the chart
var newArr:Array = [];
for(var i:int = 0; i<10; i++)
{
DJIA = DJIA + Math.random()*10 - 5;
NASDAC = NASDAC - Math.random() * 5;
SP500 = Math.random()*40;
newArr.push({"DJIA": DJIA, "NASDAC": NASDAC,
"SP500": SP500 });
}
chartData = newArr;
}
[Bindable]
public var chartData:Array = [];
]]>
</mx:Script>
<mx:SeriesInterpolate id="eff" elementOffset="1"
minimumElementDuration="40" duration="2000"/>
<mx:Button click="genData()" label="Generate data"/>
<mx:ColumnChart y="100" width="100%" height="100%"
dataProvider="{chartData}">
<mx:series>
<mx:ColumnSeries showDataEffect="{eff}"
yField="DJIA"/>
<mx:ColumnSeries showDataEffect="{eff}"
yField="NASDAC"/>
<mx:ColumnSeries showDataEffect="{eff}"
yField="SP500"/>
</mx:series>
</mx:ColumnChart>
</mx:Application>
在列状图中,复合列状图对象将被一个叠着一个来渲染。
加支付宝好友偷能量挖...