我正在使用Flex中的PieChart和PieSeries組件,並且遇到了問題。當PieSeries的labelPosition屬性設置爲'inside'並且餅圖中只有一個切片時,標籤不會顯示。帶單片的PieChart標籤
看着文檔,我猜測它的一些謬誤與內部標籤被刪除有關。該文件的內容如下:
在圖表內繪製標籤,大約沿着每個楔塊的中心位置的十分之七。收縮標籤以確保它們不會相互干擾。如果標籤在calloutPointSize屬性下縮小,請將其刪除。當兩個標籤重疊時,Flex會優先考慮較大切片的標籤。
一個解決辦法是檢測1片和另一元素添加到數據提供程序與零值,但所顯示的標籤仍然不,我想它,似乎沒有成爲一個辦法移動它。
另一種解決方案是用一個畫布包裝PieChart,並以與我用於標籤相同的格式在頂部渲染文本,但我更希望不必走這條路線(包括在圖表上呈現文本帆布,可能稍微少一點黑客,但仍然是黑客)。
下面是一些代碼展示了我的問題:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
backgroundColor="white"
>
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable] public var pieData:ArrayCollection = new ArrayCollection([
{value: 50, label: "This is a\nlong label"}
]);
[Bindable] public var pieData2:ArrayCollection = new ArrayCollection([
{value: 50, label: "This is a\nlong label"},
{value: 0, label: ""}
]);
]]>
</mx:Script>
<mx:HBox
width="100%"
height="100%"
>
<mx:PieChart
width="100%"
height="100%"
>
<mx:series>
<mx:PieSeries
dataProvider="{ pieData }"
field="value"
labelField="label"
labelPosition="callout"
/>
</mx:series>
</mx:PieChart>
<mx:PieChart
width="100%"
height="100%"
>
<mx:series>
<mx:PieSeries
dataProvider="{ pieData }"
field="value"
labelField="label"
labelPosition="insideWithCallout"
/>
</mx:series>
</mx:PieChart>
<mx:PieChart
width="100%"
height="100%"
>
<mx:series>
<mx:PieSeries
dataProvider="{ pieData }"
field="value"
labelField="label"
labelPosition="inside"
/>
</mx:series>
</mx:PieChart>
</mx:HBox>
<mx:HBox
width="100%"
height="100%"
>
<mx:PieChart
width="100%"
height="100%"
>
<mx:series>
<mx:PieSeries
dataProvider="{ pieData2 }"
field="value"
labelField="label"
labelPosition="callout"
/>
</mx:series>
</mx:PieChart>
<mx:PieChart
width="100%"
height="100%"
>
<mx:series>
<mx:PieSeries
dataProvider="{ pieData2 }"
field="value"
labelField="label"
labelPosition="insideWithCallout"
/>
</mx:series>
</mx:PieChart>
<mx:PieChart
width="100%"
height="100%"
>
<mx:series>
<mx:PieSeries
dataProvider="{ pieData2 }"
field="value"
labelField="label"
labelPosition="inside"
/>
</mx:series>
</mx:PieChart>
</mx:HBox>
</mx:Application>
有沒有人遇到這個問題,或者知道一個變通/好的解決方案?
我也遇到了這個問題,但還沒有到解決它呢。感謝爲數據提供者添加零值元素的想法,我會牢記這一點。 – ianmjones 2008-12-12 10:27:46