带有2个Y轴的ExtJS柱形图

时间:2012-02-15 08:33:36

标签: extjs charts sencha-touch extjs4

我正在尝试用2个系列绘制柱形图,因此绘制2个Y轴,一个在左侧,另一个在右侧。但是列显示在相同的位置,彼此之上而不是并排。你知道如何解决这个问题吗?

类似的东西:

Ext.onReady(function () {
    var chart;


    chart = new Ext.chart.Chart({
        width: 800,
        height: 600,
        animate: true,
        store: store1,
        renderTo: Ext.getBody(),
        shadow: true,
        axes: [{
            type: 'Numeric',
            position: 'left',
            fields: ['data1'],
            label: {
                renderer: Ext.util.Format.numberRenderer('0,0')
            },
            title: 'Number of Hits',
            grid: true,
            minimum: 0
        }, {
            type: 'Category',
            position: 'bottom',
            fields: ['name'],
            title: 'Month of the Year'
        }, {
            type: 'Numeric',
            position: 'right',
            fields: ['data2'],
            title: 'Test'
        }],
        series: [{
            type: 'column',
            axis: 'left',
            highlight: true,
            xField: 'name',
            yField: 'data1'
        }, {
            type: 'column',
            axis: 'right',
            xField: 'name',
            yField: 'data2'
        }]
    });
});

由于

3 个答案:

答案 0 :(得分:2)

在商店中创建一个零值条目,并将其附加到第一个和第二个系列项目。添加次数取决于其他轴的yField项目的长度。

例如,分别创建两个具有yField的系列项:

yField: ['data1', 'data2','data4']

yField: ['data4','data4','data3']

其中data4是商店中的零值条目。

解决方案完美无缺。 :)

答案 1 :(得分:1)

这将为左轴添加两列,为右轴添加第三列:

series: [{
    type: 'column',
    axis: 'left',
    highlight: true,
    label: {
        field: ['data1']
    },
    xField: ‘name’,
    yField: ['data1', 'data2','whateverUndefinedFieldNameYouComeUpWith'] // Use an undefined field
},{
    type: 'column',
    axis: 'right',
    highlight: true,
    label: {
        field: 'data3′
    },
    xField: 'name',
    yField: ['name','name','data3'] // or just use the same field you use for the x axis
}]

我希望你明白这一点。

答案 2 :(得分:0)

AFAIK,你不能将它们并排放在一起。原因是它们不属于同一系列。当您有两个相同系列的数据时,它们会并排显示。在您的情况下,您有两个系列..一个配置为使用左轴,另一个配置为使用右轴。我建议你为你的一个系列使用不同类型的图表。

series: [{
    type: 'line', // Instead of column chart I am using line chart...
    axis: 'left',
    highlight: true,
    xField: 'name',
    yField: 'data1'
}, {
    type: 'column',
    axis: 'right',
    xField: 'name',
    yField: 'data2'
}]