4

我正在使用 xtype:chart,这是我的轴。

   axes: [{
      type: 'numeric',
      minimum: 0,
      position: 'left',
      fields: ['2011', '2012', '2013'],
      title: 'Sales',
      minorTickSteps: 1,
      grid: {
              odd: {
                      opacity: 1,
                      fill: '#ddd',
              }
      },
      style: {
              axisLine: false,
              estStepSize: 20,
              stroke: '#ddd',
              'stroke-width': 0.5
      },
      minimum: 0,
      maximum: 1000
  }, {
      type: 'category',
      position: 'bottom',
      fields: ['name'],
      title: 'Month of the Year',
      style: {
              estStepSize: 1,
              stroke: '#999'
      }
 }]

这是我的问题,不同用户之间的最小值和最大值变化很大。如果我为某些用户提供最小值 -0 和最大值为 10000,则图表不会显示。如果我设置为 0,则其他一些图表不会显示 - 1000,所以我想在加载图表之前从商店更改最小值和最大值。有没有可能这样做?我要求一个例子。谢谢

4

2 回答 2

6

无需设置最小值和最大值,因为它将由sencha根据数据设置

如果您仍然想这样做,那么可以通过收听图表的初始化事件来做到这一点

可以说,这是轴

axes: [{
        type: 'numeric',
        position: 'left',
        fields: ['data1'],
        title: {
            text: 'Sample Values',
            fontSize: 15
        },
        grid: true,
        minimum: 0
    }, {
        type: 'category',
        position: 'bottom',
        fields: ['name'],
        title: {
            text: 'Sample Values',
            fontSize: 15
        }
    }],

并初始化监听器

    listeners : {
        initialize : function( me, eOpts ) {
            Ext.getStore('chartstore').load({
                callback: function(records, operation, success) {
                var data = records[0].data;
                 var axes = me.getAxes();
                 var SampleValuesAxis =  axes[0];
                    SampleValuesAxis.setMinimum(data.minimum);
                    SampleValuesAxis.setMaximum(data.maximum);
            },
            scope: this
        });
       }
   }
于 2013-07-25T06:21:28.760 回答
1

如果您没有为minimumand设置任何值maximum,Ext 将在每次加载商店时将轴调整为数据。

于 2013-07-25T05:44:55.100 回答