2

Ext 4 を使用して、積み上げ棒グラフのラベルで棒全体を覆うにはどうすればよいですか? ラベルをバーの先頭から開始し、すべてのセクションにまたがるようにしたいのですが、現時点では、ラベルがバーの最初のセクションだけに収まらない場合は、次のセクション/最後のセクションから自動的に開始されます。

これは Ext.chart.series.bar の例と同じコードですが、積み重ねるように変更されています。「2」というラベルの付いたバーは、最初の緑色のセクションに収まらないため、青色のセクションに押し込まれます。

ここに画像の説明を入力});

var store = Ext.create('Ext.data.JsonStore', {
fields: ['name', 'data'],
data: [
    { 'name': 'metric one',   'data':10 },
    { 'name': 'metric two',   'data': 7 },
    { 'name': 'metric three', 'data': 5 },
    { 'name': 'metric four',  'data': 2 },
    { 'name': 'metric five',  'data':27 }
]
});

Ext.create('Ext.chart.Chart', {
renderTo: Ext.getBody(),
width: 500,
height: 300,
animate: true,
store: store,
axes: [{
    type: 'Numeric',
    position: 'bottom',
    fields: ['data'],
    label: {
        renderer: Ext.util.Format.numberRenderer('0,0')
    },
    title: 'Sample Values',
    grid: true,
    minimum: 0
}, {
    type: 'Category',
    position: 'left',
    fields: ['name'],
    title: 'Sample Metrics'
}],
series: [{
    type: 'bar',
    axis: 'bottom',
    highlight: true,
    tips: {
      trackMouse: true,
      width: 140,
      height: 28,
      renderer: function(storeItem, item) {
        this.setTitle(storeItem.get('name') + ': ' + storeItem.get('data') + ' views');
      }
    },
    label: {
      display: 'insideStart',
        field: 'data',
        renderer: Ext.util.Format.numberRenderer('0'),
        orientation: 'horizontal',
        color: '#333',
        'text-anchor': 'middle'
    },
    stacked: true,
    xField: 'name',
    yField: ['data', 'data']
}]
4

3 に答える 3

0

これを試して。

{
              display: 'insideEnd',
              'text-anchor': 'middle',
                field: ['data1','data2','data3'],
                renderer: Ext.util.Format.numberRenderer('0,0'),
                orientation: 'vertical',
                color: '#333'
            }
于 2014-01-23T21:46:24.990 に答える
0

データポイントを何らかの比率で表現する必要があります。より良いパーセンテージ。下記参照

var store = Ext.create('Ext.data.JsonStore', {
            fields: ['name', 'data', 'data2'],
            data: [
                { 'name': 'metric one',   'data': 10/20,   'data2': 10/20 },
                { 'name': 'metric two',   'data': 7/17,   'data2': 10/17 },
                { 'name': 'metric three', 'data': 5/15,   'data2': 10/15 },
                { 'name': 'metric four',  'data': 2/12,   'data2': 10/12 },
                { 'name': 'metric five',  'data': 27/37,   'data2': 10/37 }
            ]
        });

        Ext.create('Ext.chart.Chart', {
            renderTo: Ext.getBody(),
            width: 500,
            height: 300,
            animate: true,
            store: store,
            axes: [{
                type: 'Numeric',
                position: 'bottom',
                fields: ['data', 'data2'],
                label: {
                    renderer: Ext.util.Format.numberRenderer('0,0')
                },
                title: 'Sample Values',
                grid: true,
                minimum: 0
            }, {
                type: 'Category',
                position: 'left',
                fields: ['name'],
                title: 'Sample Metrics'
            }],
            series: [{
                type: 'bar',
                axis: 'bottom',
                highlight: true,
                tips: {
                  trackMouse: true,
                  width: 140,
                  height: 28,
                  renderer: function(storeItem, item) {
                    this.setTitle(storeItem.get('name') + ': ' + storeItem.get('data') + ' views');
                  }
                },
                label: {
                  display: 'insideStart',
                    field: 'data',
                    renderer: Ext.util.Format.numberRenderer('0'),
                    orientation: 'horizontal',
                    color: '#333',
                    'text-anchor': 'middle'
                },
                stacked: true,
                xField: 'name',
                yField: ['data', 'data2']
            }]
        });
于 2013-04-11T12:44:46.193 に答える