禁用折线图中的特定图例

时间:2013-07-25 08:56:55

标签: actionscript-3 flex legend linechart lineseries

是否有可能在折线图中禁用LineSeries组件的特定图例。

假设我们有以下代码:

<mx:Panel title="Line Chart">
 <mx:LineChart id="myChart" 
    dataProvider="{expenses}" 
    showDataTips="true"
 >
    <mx:horizontalAxis>
       <mx:CategoryAxis 
            dataProvider="{expenses}" 
            categoryField="Month"
        />
    </mx:horizontalAxis>
    <mx:series>
       <mx:LineSeries 
            yField="Profit" 
            displayName="Profit"
       />
       <mx:LineSeries 
            yField="Expenses" 
            displayName="Expenses"
       />
    </mx:series>
 </mx:LineChart>
 <mx:Legend id="legend" dataProvider="{myChart}"/>

它将产生以下折线图:

enter image description here

这就是我想要的结果:

enter image description here

更新

请记住,我必须使用图例的DataProvider作为myChart,因为数据是动态构建的。此外,图例也是定制的。

3 个答案:

答案 0 :(得分:0)

使用您的图表作为DataProvider,您可以创建单独的LegendItems

    <mx:Legend>
        <mx:LegendItem label="Profit" fill="#e48701">           
        </mx:LegendItem>
    </mx:Legend>

edit2:试试这个

    <mx:Legend dataProvider="{new ArrayCollection(myChart.legendData).getItemAt(0)}">

答案 1 :(得分:0)

得到解决方案,因为我有自定义图例我必须在更新折线图后设置数据提供者图例:

 // Add listener event to the linechart component for when the legend update completes so it can filter lineseries on the legend's dataprovider in [onUpdateLegendComplete]
    myChart.addEventListener(FlexEvent.UPDATE_COMPLETE, onUpdateLinechartComplete);

功能是:

protected function onUpdateLinechartComplete(e:FlexEvent):void 
{
    legend.dataProvider = myChart.legendData[0];
}

答案 2 :(得分:0)