2012-02-21 54 views
3

有人可以知道如何格式化extjs图表轴为整数。数字轴也给出十进制值。我只需要axis中的整数值。Extjs图整数轴

+0

你能否提供更多细节? – 2012-02-21 12:25:46

+0

@格兰特朱:我想画线图时间对访问。访问不能是十进制(0.2 ...像)。但是当我使用访问轴类型作为轴的数字标签显示decimels(1.2,3.6 ...类似)。 – Nissanka 2012-02-22 05:39:09

+0

我的意思是关于你使用的是什么版本的更多信息,并且你能提供一小段代码。 – 2012-02-22 05:51:11

回答

1

在您的模型中,将字段类型设置为'int',它将丢弃小数。

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

这对ExtJS 4.1不起作用,轴仍以十进制值进行渲染。 – Geronimo 2012-06-30 20:54:59

0

您可以使用标签渲染功能,当你定义轴做到这一点

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

,当你有v你可以做你想做与轴值什么(v是值的标签)。在以上情况下,将。固定(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; 
     } 
     } 
}) 

这为我工作