2012-04-13 162 views
1

我在制作一个图表,其中x轴需要有日期和y轴名称。当日期晚些时候,酒吧的长度更长。但我想在彼此上堆叠多个酒吧。例如Flex:堆叠条形图,日期为x轴,名称为y轴

这是我至今

<fx:Script> 
    <![CDATA[ 

     import mx.collections.ArrayCollection; 

     [Bindable] 
     private var medicines:ArrayCollection = new ArrayCollection([ 
      {name:"pil1", date:"05/01/2008"}, 
      {name:"pil2", date:"06/01/2008"}, 
      {name:"pil3", date:"07/01/2008"}, 
     ]); 
    ]]> 
</fx:Script> 



<mx:BarChart id="myChart" width="758" height="448" dataProvider="{medicines}" showDataTips="true"> 

    <mx:verticalAxis> 
     <mx:CategoryAxis categoryField="name"/> 
    </mx:verticalAxis> 

    <mx:horizontalAxis> 
     <mx:CategoryAxis categoryField="date" dataProvider="{medicines}"/> 
    </mx:horizontalAxis> 

    <mx:series> 

     <mx:BarSet type="stacked"> 
      <mx:BarSeries xField="date"/> 
      <mx:BarSeries xField="date"/> 
     </mx:BarSet> 
    </mx:series> 

</mx:BarChart> 

我得到了这个代码是正确的轴,但是没有被抽酒吧的代码。

我想要得到一个像this figure一样的图表,但在X轴上应该有常规日期。

仅供参考,它是一个移动应用程序。

+0

有你没有设定值,只有两根弦尽量设置一些值,而不是字符串 – Triode 2012-04-13 09:11:54

+0

我没有价值。只是标记酒吧长度的日期。日期是我的价值观。我现在试图将日期转换为数字,但我希望会有一个更容易的溶剂 – Tommyke 2012-04-13 09:30:49

+0

是的,你可以在tio毫秒内将其转换并赋值 – Triode 2012-04-13 10:04:18

回答

0
<fx:Script> 
     <![CDATA[ 
      import mx.collections.ArrayCollection; 
      import mx.events.FlexEvent; 

      [Bindable] 
      private var medicines:ArrayCollection = new ArrayCollection([ 
       {name:"pil1", date:new Date(2008, 5, 1).time}, 
       {name:"pil2", date:new Date(2008, 6, 1).time}, 
       {name:"pil3", date:new Date(2008, 7, 1).time}, 
      ]); 

      protected function application3_creationCompleteHandler(event:FlexEvent):void 
      { 
       // TODO Auto-generated method stub 
      } 

      private function getLabel(catValue:*, prevCatValue:*, axis:*, catItem:*):String 
      { 

       return "Your date String"; 
      } 

     ]]> 
    </fx:Script> 



    <mx:BarChart id="myChart" width="758" height="448" dataProvider="{medicines}" showDataTips="true"> 

     <mx:verticalAxis> 
      <mx:CategoryAxis categoryField="name"/> 
     </mx:verticalAxis> 

     <mx:horizontalAxis> 
      <mx:CategoryAxis categoryField="date" dataProvider="{medicines}" labelFunction="{getLabel}"/> 
     </mx:horizontalAxis> 

     <mx:series> 

      <mx:BarSet type="stacked"> 
       <mx:BarSeries xField="date"/> 
       <mx:BarSeries xField="date"/> 
      </mx:BarSet> 
     </mx:series> 

    </mx:BarChart> 



</s:Application> 

在标签功能,你可以给你想要的轴显示什么标签,希望这将有助于