0

次のような一連のデータがあります。

        [Bindable]
    public var Loc:ArrayCollection = new ArrayCollection([
        {date:"2002", close:41.87, loc: "Location 01"},
        {date:"2003", close:45.74, loc: "Location 01"},
        {date:"2004", close:42.77, loc: "Location 01"},
        {date:"2005", close:48.06, loc: "Location 01"},
        {date:"2006", close:48.06, loc: "Location 01"},
        {date:"2002", close:157.59, loc: "Location 02"},
        {date:"2003", close:160.3, loc: "Location 02"},
        {date:"2004", close:150.71, loc: "Location 02"},
        {date:"2005", close:156.88, loc: "Location 02"},
    ]);

次のようなチャートを作成したいと思います。各場所は異なる色で表示され、年ごとにグループ化されています。 ここに画像の説明を入力

「mx:ColumnSeries」タグを使用し、その「filterFunction」プロパティを使用して、各場所のデータを個別のシリーズとしてフィルタリングする方法を定義する必要があると考えていましたが、その方法がわかりません。そのようなチャートを作成するための推奨事項やサンプルコードはありますか? ありがとうございました

4

1 に答える 1

1

ここに例があります:

private function filterSeries1(cache:Array):Array
{
    var filteredCache:Array = [];
    for (var i:int = 0; i < cache.length; i++)
    {
        var item:ColumnSeriesItem = ColumnSeriesItem(cache[i]);
        if(item.item.loc == "Location 01")
            filteredCache.push(item);
    }
    return filteredCache;
}

private function filterSeries2(cache:Array):Array
{
    var filteredCache:Array = [];
    for (var i:int = 0; i < cache.length; i++)
    {
        var item:ColumnSeriesItem = ColumnSeriesItem(cache[i]);
        if(item.item.loc == "Location 02")
            filteredCache.push(item);
    }
    return filteredCache;
}

と:

<mx:series>
    <mx:ColumnSeries yField="close" xField="date"
                     labelPosition="outside"
                     filterFunction="{filterSeries1}"/>
    <mx:ColumnSeries yField="close" xField="date"
                     labelPosition="outside"
                     filterFunction="{filterSeries2}"/>
</mx:series>
于 2013-06-25T15:14:50.483 に答える