弹性图柱系列不可见

时间:2011-06-27 20:42:36

标签: flex charts

我有一个我正在尝试通过动态脚本动态构建的弹性图表。出于测试目的,我想出了以下数据结构和代码:

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");

        }

运行此代码时,我得到一张空白图表。

2 个答案:

答案 0 :(得分:0)

现在无法测试它,但如果你只是将columnDat数组分配给该系列就足够了:

columnSeries.dataProvider = columnDat;

或柱形图:

genericChart.dataProvider = columnDat;

答案 1 :(得分:0)

首先,您应该使用MXML来处理这些问题。这更容易。

其次,我认为你没有很好地遵循这个例子。有两种方法可以做图表:

1)将数据添加到图表数据提供程序,并让系列指定该数据提供程序中的x和y字段。

2)不要将数据添加到图表,只需将数据直接添加到系列中,而无需指定x和y字段。

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