как задать минимальные и максимальные значения динамических осей для диаграммы из магазина sencha touch

Я использую 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, поэтому я хочу изменить это минимальное и максимальное значения из хранилища до загрузки диаграммы. есть возможность так сделать?? Прошу пример. Спасибо.


person Gowthami Gattineni    schedule 24.07.2013    source источник


Ответы (2)


Не нужно устанавливать минимум и максимум, потому что он будет установлен сенчей на основе данных.

Если вы все еще хотите это сделать, вы можете сделать это, прослушивая событие инициализации диаграммы.

Допустим, это оси

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
        });
       }
   }
person Viswa    schedule 25.07.2013
comment
Спасибо, у меня все еще есть проблема, если линии ступенчатые и заполненные, они работают нормально, но если они гладкие, линии не отображаются ..smooth: true не работает для меня, и он работает нормально, если я дать fill: true или step: true .. могу ли я знать, где я ошибаюсь - person Gowthami Gattineni; 25.07.2013
comment
На этом графике 3 линии (2011, 2012, 2013). Три линии отображаются очень хорошо и плавно, и у меня тоже работает.. Какая линия не отображается у вас? - person Viswa; 25.07.2013
comment
для меня отлично работает строка 2013 года... а для 2011 и 2012 только точки, показывающие не линии.. - person Gowthami Gattineni; 25.07.2013
comment
вы тестируете в хроме? - person Viswa; 25.07.2013
comment
да .. он не работает на хроме, симуляторе iOS и Firefox - person Gowthami Gattineni; 25.07.2013

Если вы не установите значения для minimum и maximum, Ext будет корректировать ось в соответствии с данными каждый раз при загрузке хранилища.

person rixo    schedule 25.07.2013