当 PieSeries 中的所有数据都等于 0 时,有什么方法可以强制 Flex 绘制空的 PieChart。我现在得到的结果只是我的图表应该在的地方有一个空白区域。
问问题
1691 次
1 回答
0
可能不完全是您想要的,但下面的示例将为您提供一个空的橙色图表,其中包含一个标记为 Empty 的图例条目(您可能希望保留完整的图例)。
禁用标签和数据提示,当所有值都设置为零时,运行一个函数来改变 dataProvider(下面的代码可能会有所帮助)
<?xml version="1.0"?>
<!-- charts/BasicPie.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script><![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
public var expenses:ArrayCollection = new ArrayCollection([
{Expense:"Taxes", Amount:1},
{Expense:"Rent", Amount:2},
{Expense:"Bills", Amount:3}
]);
private function removeItems(event:Event):void{
expenses.removeAll();
expenses.addItem({Expense:"Empty", Amount:1});
mySeries.setStyle("labelPosition", "false");
myChart.showDataTips = false;
}
]]></mx:Script>
<mx:Panel title="Pie Chart" width="442" height="536">
<mx:PieChart id="myChart"
dataProvider="{expenses}"
showDataTips="true"
themeColor="#121212" alpha="1.0" width="100%" height="100%">
<mx:series>
<mx:PieSeries
id="mySeries"
field="Amount"
nameField="Expense"
labelPosition="callout"
/>
</mx:series>
</mx:PieChart>
<mx:Button label="Remove items" click="removeItems(event)"/>
<mx:Legend dataProvider="{myChart}"/>
</mx:Panel>
</mx:Application>
于 2010-08-05T16:09:20.640 回答