0

数値のy軸を整数として表示しようとしています...運が悪いと、常に小数が表示されます。

この返信を行う方法を見つけた場合は、私に返信してください。テストを簡単にするためのコードは、http: //jsfiddle.net/adriansky/4uY7H/にあります。

var store1 = Ext.create('Ext.data.Store', {
    fields: ['name', {name: 'people', type: 'integer' }],
    data:[
        {"name":"jan",  "people":13},
        {"name":"feb",  "people":12},
        {"name":"mar",  "people":12},
        {"name":"apr",  "people":13},
        {"name":"may",  "people":12},
        {"name":"june", "people":13}
    ]
});

var chart = Ext.create('Ext.chart.Chart', {
    renderTo: Ext.getBody(),
    width: '80%',
    height: '80%',
    store: store1,
    axes: [{
        type: 'Numeric',
        position: 'left',
        fields: ['people'],
    }, {
        type: 'Category',
        position: 'bottom',
        fields: ['name'],
    }],
    series: [{
        type: 'line',
        axis: 'left',
        xField: 'name',
        yField: 'people',
    }]
});
4

4 に答える 4

0

私の以前の答えはext js 3.4に対するものでした

あなたの場合、両方を使用する場合

majorTickSteps: 1,
minimum: 0,

動作しているようです

http://jsfiddle.net/alezx/vu5pL/

于 2013-11-05T09:25:13.057 に答える
0

私はこれをやった、それは私に時間がかかった

y 軸全体を再定義し、メジャーユニットなどを再計算する必要があります。

あなたのチャートがmonkeyChartと呼ばれているとしましょう。

チャートが作成されたら、monkeyChart.setYAxis(..) を呼び出すだけです。

monkeyChart.setYAxis(createNumericAxis(min, max, optCfg));



createNumericAxis: function(start, end, optCfg) {
    var cfg = {
        majorUnit: calculateMajorUnit(start, end)
    };
    Ext.apply(cfg, optCfg)
    return new Ext.chart.NumericAxis(cfg);
},

calculateMajorUnit: function(min, max){
    if(min == undefined) min = 0;
    if(max == undefined) max = 20;
    var dif = max - min;
    var interval = dif / 20;
    var intervals = [1,2,5,10,20,50,100,200,500];
    for (var i = 0; i < intervals.length; i++) {
        if(interval <= intervals[i]){
            interval = intervals[i];
            break;
        }
    }
    return interval;
},

もちろん、見たい間隔など、好きなように数値を調整する必要があります(私はこのようにしたので、値に応じて異なる密度を持つことができます)

また、事前に最小値と最大値がわからない場合は、両方に undefined を渡し、空のオブジェクトを optCfg として渡すことができます

試してみてください。ずっと前に書いたので、今は何かを見逃しているかもしれません

于 2013-10-25T16:43:00.040 に答える