4

我正在使用图表来可视化 a 中的数据TimeboxScopedApp,并且我想在范围更改时更新数据。remove()如此处所述使用然后重绘图表更蛮力方法给我留下了一个覆盖的“正在加载...”掩码,但除此之外有效。使用 Highchart 本机redraw()方法的自然方法是我的偏好,只是我不知道如何访问实际的 Highchart 对象而不是 App SDK 包装器。

这是代码的相关部分:

var chart = Ext.getCmp('componentQualityChart');
if (chart) {
    var chartCfg = chart.getChartConfig();
    chartCfg.xAxis.categories = components;
    chart.setChartConfig(chartCfg);
    chart.setChartData(data);
    chart.redraw(); // this doesn't work with the wrapper object
} else { // draw chart for the first time

如何使用新数据重新绘制图表?

4

2 回答 2

3

假设图表 (componentQualityChart) 是 的一个实例Rally.ui.chart.Chart,您可以像这样访问 HighCharts 实例:

var highcharts = chart.down('highchart').chart;

// Now you have access to the normal highcharts interface, so
// you could change the xAxis
highcharts.xAxis[0].setCategories([...], true);

// Or you could change the series data
highcharts.series[0].data.push({ ... });  //Add a new data point

// Or pretty much anything else highcharts lets you do
于 2013-07-26T20:57:27.423 回答
1

使用 _unmask() 删除覆盖的“正在加载..”掩码

if (this.down('#myChart')) {
    this.remove('myChart');
}
 this.add(
                    {
                        xtype: 'rallychart',
                        height: 400,
                        itemId: 'myChart',
                        chartConfig: {
                            //....
                        },            
                        chartData: {
                            categories: scheduleStateGroups, 
                            series: [ 
                                {   
                                    //...
                                }
                            ]
                        }
                    }
                );
        this.down('#myChart')._unmask();
于 2013-08-08T17:24:51.870 回答