2010-08-03 73 views
1

顯然,不可能有幾個獨立的水平軸。在柱形圖頂部繪製一條線

我想實現的是:

  • 顯示柱狀圖,通過它(頂部任何類別
  • 覆蓋線(實際上是一個水平線)組織,以顯示某種閾值)

我試着做以下幾點:

[Bindable] public var columnsDataProvider : ArrayCollection = 
    new ArrayCollection([{"Category" : "Cat1", "Value" : 10}, 
         {"Category" : "Cat2", "Value" : 20}]); 

[Bindable] public var lineDataProvider : ArrayCollection = 
    new ArrayCollection([{"X" : 0, "Y" : 10}, 
         {"X" : 1, "Y" : 10}]); 

...

<mx:ColumnChart id="columnChart" 
    showDataTips="true" 
    columnWidthRatio="0.5" 
    paddingTop="10" 
    paddingLeft="5" paddingRight="5" 
    width="100%" height="100%"> 


    <mx:horizontalAxis> 
     <mx:CategoryAxis dataProvider="{columnsDataProvider}" categoryField="Category"/> 
    </mx:horizontalAxis> 

    <mx:series> 

     <mx:ColumnSeries id="series1" yField="Value" xField="Carrier" dataProvider="{columnsDataProvider}"> 
      <mx:horizontalAxis> 
       <mx:CategoryAxis id="axis1" categoryField="Category"/> 
      </mx:horizontalAxis> 
     </mx:ColumnSeries> 

     <mx:LineSeries id="series2" yField="Y" xField="X" dataProvider=" {lineDataProvider}"> 
       <mx:horizontalAxis> 
        <mx:LinearAxis id="axis2"/> 
       </mx:horizontalAxis> 
     </mx:LineSeries> 
    </mx:series> 

這是最接近我想要的東西,但該行不啓動跨所有圖形垂直(這是隻畫出了我的條形圖的兩列之間)。

是否可以定義完全獨立的水平軸?我也嘗試直接在畫布上繪製,但canvas.lineTo()方法只能在「數據」座標中起作用;我需要在「chart/canvas/absolute/whatever」座標下工作的東西。

對此有何幫助?

感謝 PH

回答

2
<mx:ColumnChart id="columnChart" dataProvider="{columnsDataProvider}" 
showDataTips="true" columnWidthRatio="0.5" 
paddingTop="10" 
paddingLeft="5" paddingRight="5" 
width="100%" height="100%"> 
<mx:horizontalAxisRenderers> 
    <mx:AxisRenderer axis="{h1}" /> 
    <mx:AxisRenderer axis="{h2}" visible="false" /> 
</mx:horizontalAxisRenderers> 
<mx:verticalAxis> 
    <mx:LinearAxis id="v1"/> 
</mx:verticalAxis> 
<mx:series> 
    <mx:ColumnSeries id="series1" yField="Value" xField="Category"> 
     <mx:horizontalAxis> 
      <mx:CategoryAxis id="h1" categoryField="Category"/> 
     </mx:horizontalAxis> 
    </mx:ColumnSeries> 
    <mx:LineSeries yField="Y" xField="X" dataProvider="{lineDataProvider}"> 
     <mx:horizontalAxis> 
      <mx:LinearAxis id="h2" maximum="1"/> 
     </mx:horizontalAxis> 
    </mx:LineSeries> 
</mx:series>