FLEX LINECHART-如何从数组收集中的唯一值创建线段



我一直在试图找出一种创建一种基于数组汇编数据的线路线的方法。

要更具体,假设我们有一个数组汇编:

public var myarray:arrayCollection = new ArrayCollection([[{state:" Georgia",年:" 2011",百分比:18},{state:" GEORGIA"," GEORGIA",年:" 2010",百分比:10},{状态:"马里兰州",年:" 2009",百分比:15},{州:"马里兰州",年:" 2008",百分比:15}]);

我想创建一个包含两条线的弹力机:一条用于佐治亚州,另一个用于马里兰州。佐治亚州的线路将包含单线上的2011年和2010年数据。马里兰线将包含2009年和2008年的数据。

我认为我可能必须动态创建线条,但不确定如何获取数组汇编以将数据分组为基于状态的数据。

任何建议都会有所帮助。谢谢

查看此示例。简而言之,您需要在创建它时为每个系列提供一个数据函数。

编辑:实际上,您的数据很简单,您可以使用Xfield/Yfield。

不确定这是最干净的方法,但这是我想到的:

<fx:Script>
    <![CDATA[
        import mx.charts.series.LineSeries;
        import mx.collections.ArrayCollection;
        [Bindable]
        private var appData:ArrayCollection=new ArrayCollection([{State: "Georgia", Year: 2000, Percent: 15}, {State: "Georgia", Year: 2001, Percent: 12}, {State: "Georgia", Year: 2002, Percent: 5}, {State: "Maryland", Year: 1999, Percent: 12}, {State: "Maryland", Year: 2000, Percent: 7}]);
        protected function creationComplete(event:Event):void
        {
            var states:Array=new Array("Georgia", "Maryland");
            var series:Array=new Array();
            for each (var state:Object in states)
            {
                var data:ArrayCollection=new ArrayCollection();
                var ls:LineSeries=new LineSeries();
                for (var i:int=0; i < appData.length; i++)
                {
                    var currItem:String=appData.getItemAt(i).State;
                    if (currItem == state)
                    {
                        data.addItem(appData.getItemAt(i));
                    }
                }
                ls.yField="Percent";
                ls.xField="Year";
                ls.displayName=state.toString();
                ls.dataProvider=data;
                series.push(ls);
            }
            linechart.series=series;
        }
    ]]>
</fx:Script>
<mx:Panel title="US States Data"
          height="100%"
          width="100%"
          layout="horizontal">
    <mx:LineChart id="linechart"
                  height="100%"
                  width="100%"
                  paddingLeft="5"
                  paddingRight="5"
                  showDataTips="true"
                  dataProvider="{appData}">
        <mx:horizontalAxis>
            <mx:CategoryAxis categoryField="Year"/>
        </mx:horizontalAxis>
    </mx:LineChart>
    <mx:Legend dataProvider="{linechart}"/>
</mx:Panel>

相关内容

  • 没有找到相关文章

最新更新