2010-10-06 6 views
0

Je veux montrer plusieurs séries sur un graphique. Mais cela se traduirait par plusieurs axes, pour éviter cela, j'essaie de rendre certains axes invisibles.flex récupérer de l'espace perdu par l'axe invisible

Question: Lorsque je mets le rendu de l'axe invisible = false, il y a un espace blanc qui reste.

Y a-t-il un moyen d'éviter que cet espace blanc n'apparaisse?

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> 
    <mx:Script><![CDATA[ 
    import mx.charts.HitData; 
    import mx.collections.ArrayCollection; 

    [Bindable] 
     public var DS:ArrayCollection = new ArrayCollection([ 
     {date:"22-Aug-05", expense:1575.9, tax:41.87, price: 4}, 
     {date:"23-Aug-05", expense:NaN, tax:NaN,price: 4}, 
     {date:"24-Aug-05", expense:1507.1, tax:42.77,price:5 }, 
     {date:"25-Aug-05", expense:1568.8 ,tax:48.06, price:5}, 
    ]); 

    public function dtFunc(hd:HitData):String { 
     if(""+hd.item.expense == "NaN") 
     return ""; 
     else 
     return hd.item.expense ; 
    } 



    ]]></mx:Script> 

<mx:SolidColor id="sc1" color="blue" alpha=".8"/> 
<mx:Stroke id="s1" color="blue" weight="1"/> 


    <mx:Panel title="Column Chart With Multiple Axes"> 
    <mx:CartesianChart id="myChart" showDataTips="true" dataTipFunction="dtFunc"> 
     <mx:horizontalAxis> 
      <mx:CategoryAxis id="h1" categoryField="date"/> 
     </mx:horizontalAxis> 

     <mx:horizontalAxisRenderers> 
      <mx:AxisRenderer placement="bottom" axis="{h1}"/> 
     </mx:horizontalAxisRenderers> 

     <mx:verticalAxisRenderers> 
      <mx:AxisRenderer placement="left" axis="{v1}"/> 
      <mx:AxisRenderer placement="left" axis="{v3}" visible="false"/> 
     </mx:verticalAxisRenderers> 

     <mx:series> 
      <mx:ColumnSeries id="cs1" 
       horizontalAxis="{h1}" 
       dataProvider="{DS}" 
       yField="expense" 
       displayName="EXPENSE-BARCHART" 
       filterData="false" 
      > 
       <mx:verticalAxis> 
        <mx:LinearAxis id="v1" /> 
       </mx:verticalAxis>   
      </mx:ColumnSeries>   


      <mx:LineSeries id="cs3" horizontalAxis="{h1}" dataProvider="{DS}" yField="price" 
      displayName="Price" form="step" 
      > 
       <mx:verticalAxis> 
        <mx:LinearAxis id="v3" />   
       </mx:verticalAxis> 

      </mx:LineSeries> 
     </mx:series> 
    </mx:CartesianChart> 
    <mx:Legend dataProvider="{myChart}"/> 
    </mx:Panel> 
</mx:Application> 

Répondre

0

essayer d'ajouter des attributs Showline = "false" ShowLabels = "false" tickPlacement = "none" intérieur AxisRenderer.

cela fonctionne bien pour moi, mais je ne suis pas sûr s'il est déjà trop tard pour vous. J'espère que cela aide.