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