Extjs диаграмма целочисленная ось - PullRequest
3 голосов
/ 21 февраля 2012

Может кто-нибудь знает, как отформатировать оси диаграммы extjs в целое число. Числовая ось также дает десятичные значения. Я хочу только целочисленные значения по оси.

Ответы [ 4 ]

2 голосов
/ 06 апреля 2013

определите ваш минимум и максимум, затем добавьте majorTickSteps с вашим самым большим значением оси в вашем массиве данных минус один, чтобы он был на один меньше, чем ваш максимальный

кредит @bittercoder для комментария majorTickSteps Sencha ExtJs 4.1.3

axes: [{
    type: 'Numeric',
    position: 'left',
    fields: ['data1', 'data2', 'data3'],
    title: 'Number of Hits',
    grid: {
        odd: {
            opacity: 1,
            fill: '#ddd',
            stroke: '#bbb',
            'stroke-width': 1
        }
    },
    minimum: 0,
    maximum: 10,
    majorTickSteps: 9 // one less than max
}, {
    type: 'Category',
    position: 'bottom',
    fields: ['name'],
    title: 'Month of the Year',
    grid: true,
    label: {
        rotate: {
            degrees: 315
        }
    }
}]
1 голос
/ 03 апреля 2012

В вашей модели установите для типов полей значение 'int', и оно будет отбрасывать десятичные дроби.

Ext.define('MyModel', {
    extend: 'Ext.data.Model',
    fields: [
        {
            name: 'Foo',
            type: 'int'
        },
        {
            name: 'Bar',
            type: 'int'
        }
    ]
});
0 голосов
/ 09 декабря 2015

У меня была похожая проблема.

yAxis: new Ext.chart.NumericAxis({

      displayName: 'Visits',
      labelRenderer: function(v) {
         // return a value only if it is an integer
         if(v.toString().indexOf(".") === -1){
               return v;
         }
      }
})

Это сработало для меня

0 голосов
/ 26 марта 2013

Вы можете использовать функцию визуализации меток, когда определяете ось, чтобы сделать это

axes: [{
         type: 'Numeric',
         position: 'left',
         grid: true,
         fields: ['data1', 'data2'],
         label: {
                  renderer: function (v) {
                         return v.toFixed(0); 
                         }
                }
        },
        { ... }
      ]

Вы можете делать все что угодно со значениями оси, когда у вас есть v (v isзначение метки).В приведенном выше случае .toFixed (0) округляет до ближайшего целого числа.

...