2012-02-21 8 views
3

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

+0

Не могли бы вы дать более подробную информацию? –

+0

@Grant Zhu: Я хочу нарисовать диаграмму времени от посещений. Посещения не могут быть десятичными (0,2 ... как). Но когда я использовал тип оси посещения в качестве числовых таблиц оси с дециметрами (1,2, 3,6 ... как). – Nissanka

+0

Я имею в виду больше информации о том, какую версию вы используете, и можете ли вы предоставить фрагмент кода. –

ответ

1

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

Ext.define('MyModel', { 
    extend: 'Ext.data.Model', 
    fields: [ 
     { 
      name: 'Foo', 
      type: 'int' 
     }, 
     { 
      name: 'Bar', 
      type: 'int' 
     } 
    ] 
}); 
+1

Это не работает для ExtJS 4.1, ось по-прежнему отображает десятичные значения. – Geronimo

0

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

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

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

2

определить свой минимум и максимум, а затем добавить 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 
     } 
    } 
}] 
0

Я столкнулся с аналогичной проблемой.

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; 
     } 
     } 
}) 

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

Смежные вопросы