2010-08-05 5 views
1

Есть ли способ заставить Flex нарисовать пустой PieChart, когда все данные в PieSeries равны 0. Результат, который я получаю сейчас, - это просто пустое место в месте, где должна быть моя диаграмма ,Круговая диаграмма с пустыми данными

ответ

0

Возможно, не совсем то, что вы хотите, но приведенный ниже пример даст вам пустую оранжевую диаграмму с отдельной надписью с надписью Empty (вы, вероятно, хотите сохранить полную легенду).

alt text http://img9.imageshack.us/img9/7205/emptypiechart.jpg

Отключение меток и Datatips, и когда все значения установлены в ноль, запустить функцию изменять 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> 
+0

Я дополнительно задайте заливку, чтобы она была прозрачной, поэтому у нее было больше «пустого чувства». Не самое изящное решение, но оно должно делать, потому что нет другого. Благодарю. – 2DH

+0

Что вы сделали, чтобы сделать заливку прозрачной? – Ryan