1

嗨,我正在开发一个 extjs 4.2.1 应用程序,我在其中使用条形图(堆叠)。在 x 轴上,我希望范围从 -100(最小值)到最大值(100),相差 20(majorTickSteps=10)。

下面是代码

var store = Ext.create('Ext.data.JsonStore', {
fields: ['name', 'cost','sell'],
data: [
    {'name': "2013", 'cost': -36.483395098129556, 'sell': 25.516604901870444},
    {'name': "2013", 'cost': -27.483395098129556, 'sell': 8.516604901870444},
    {'name': "2013", 'cost': -35.483395098129556, 'sell': 19.516604901870444},
    {'name': "2013", 'cost': -25.483395098129556, 'sell': 33.516604901870444}
]

});

Ext.create('Ext.chart.Chart', {
        renderTo: Ext.getBody(),
        id:'chart',
        width: 580,
        height: 165,
        animate: true,
        store: store,
        axes: [{
            type: 'Numeric',
            position: 'bottom',
            fields: ['cost','sell'],  
            grid: true, 
            minimum: -100,
            maximum:100      
        }, {
            type: 'Category',
            position: 'left',
            fields: ['name']
        }],
        series: [{
            type: 'bar',
            axis: 'bottom',
             stacked: true,
            xField: 'name',
            yField: ['cost','sell']
        }]
    });
  • 如果 stacked = true ,x 轴最小值和最大值会根据存储进行更改
  • 如果stacked = false,x 轴最小值和最大值保持不变,但不堆叠。

我需要具有我指定的最小值和最大值的堆积条形图。我该如何继续。任何帮助将不胜感激。

4

1 回答 1

2

这是 ExtJS 中的一个已知问题(EXTJSIV-7844)。一种解决方案是覆盖processView轴的功能。

原始代码如下所示(请参阅文档):

processView: function() {
    var me = this,
        chart = me.chart,
        series = chart.series.items,
        i, l;

    for (i = 0, l = series.length; i < l; i++) {
        if (series[i].stacked) {
            // Do not constrain stacked charts (bar, column, or area).
            delete me.minimum;
            delete me.maximum;
            me.constrain = false;
            break;
        }
    }

    if (me.constrain) {
        me.doConstrain();
    }
}

正如你所看到的,有一些代码可以故意阻止你做你想做的事情。我不确定为什么代码在那里,但一个简单的解决方法是覆盖该processView函数,使其不这样做。

processView: function() {
    var me = this;

    if (me.constrain) {
        me.doConstrain();
    }
}

请参阅此小提琴以获取工作示例。

于 2013-09-26T22:47:37.450 回答