2011-06-27 38 views
0

我有一个flex图表,我试图通过actionscript动态构建。出于测试目的,我想出了以下数据结构和代码:flex chart columnseries not visible

Bindable] 
     public var columnDat:Array= 
     [{signalID:"SCL", point2:100}, 
     {signalID:"SCL", point2:50}, 
     {signalID:"SCL", point2:30}, 
     {signalID:"SCL", point2:60}, 
     {signalID:"SCL", point2:220}, 
     {signalID:"SCL", point2:140}, 
     {signalID:"SCL", point2:280}]; 

public function makeDummyChart(genericChart:CartesianChart, genericLegend:Legend, chartPanel:ChartPanel):void { 

      var renderers:ArrayCollection = new ArrayCollection(); 
      genericChart = new ColumnChart(); 

      // Define the two axes. 
      var dispAxis:CategoryAxis = new CategoryAxis(); 
      var axr:AxisRenderer = new AxisRenderer();    
      axr.axis = dispAxis; 
      renderers.addItem(axr); 

      var seriesList:ArrayCollection=new ArrayCollection(); 

      // Add the series 
      genericChart.horizontalAxis = dispAxis; 
      var columnSeries:ColumnSeries = new ColumnSeries();  
      BindingUtils.bindProperty(columnSeries, "dataProvider", this, "columnDat"); 

      columnSeries.xField="signalID";; 
      columnSeries.yField="point2"; 
      seriesList.addItem(columnSeries); 

      genericChart.series = seriesList.toArray(); 
      genericLegend.dataProvider = genericChart; 

      genericChart.horizontalAxisRenderers = renderers.toArray(); 

      genericLegend.dataProvider = genericChart; 
      // chart panel is just the panel on the screen where chart is displayed 
      chartPanel.addChild(genericChart); 
       trace (" make dummy chart done"); 

     } 

我刚刚得到一个空白图表,当我运行此代码。

回答

0

不能现在测试,但它应该是足够的,如果你只是columnDat阵列分配到系列:

columnSeries.dataProvider = columnDat; 

或柱形图:

genericChart.dataProvider = columnDat; 
+0

那么columnSeries.dataProvider = columnDat;没有工作(实际上,我需要在真实应用程序中像这样一个一个地添加它们,所以我没有尝试genericChart版本)。 – solerous

0

首先,你应该使用MXML来做这件事。这很容易。

其次,我认为你并没有很好地效仿这个例子。有2种方式做图表:

1)将数据添加到图表数据提供商,并有系列指定数据提供者中的X和Y场。

2)不要将数据添加到图表,只是直接添加数据到系列而不指定x和y场。

现在,您正在混合使用1和2,并且系列无法看到数据,因为它被过滤掉了,这就是为什么它是空白的。不要在数据提供者上设置数据提供者,而是将其设置在图表上,并且它应该可以工作。再例如,look at the docs

+0

其实,我不能使用mxml或我会。这些图表是随时加载的。真正的数据将从数据库中读取(我只是在这里使用静态数组进行测试),并且几乎总是会有多个系列。至于第2点,你看到我在图表中添加数据吗? – solerous

+0

请再次阅读我的答案。 –

相关问题