Отключить конкретную легенду в линейном графике

Есть ли возможность отключить конкретную легенду для компонента 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}"/>

Он создаст следующую линейную диаграмму:

И это результат, который я хочу:

ОБНОВИТЬ:

Имейте в виду, что я должен использовать DataProvider легенды как myChart, потому что данные создаются динамически. Также легенда настраивается.

3 ответа

Решение

Получил решение, так как у меня есть пользовательская легенда, я должен установить легенду поставщика данных после обновления линейной диаграммы:

 // 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];
}

Оформить заказ http://flexdevtips.blogspot.com/2009/10/linechart-with-checkbox-legend.html Это может дать вам некоторые идеи.

Вместо того, чтобы использовать диаграмму в качестве DataProvider, вы можете создать отдельные элементы LegendItems.

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

edit2: попробуйте это

    <mx:Legend dataProvider="{new ArrayCollection(myChart.legendData).getItemAt(0)}">
Другие вопросы по тегам