Se si tenta l'esempio di codice dal vivo nella documentazione a:Come posso ottenere un grafico a barre ExtJS 4.1.X con una sola barra per mostrare correttamente l'etichetta di quella barra?
http://docs.sencha.com/ext-js/4-1/#!/api/Ext.chart.series.Bar
Più di un'etichetta sembra bello:
data: [
{ 'name': 'metric one', 'data':5 },
{ 'name': 'metric two', 'data':27 }
]
Tuttavia, non appena si riduce il set di dati fino a un'etichetta, l'output appare orribile (notare l'etichetta per la barra appare a metà fuori dalla parte superiore dell'area del grafico, invece che allineata verticalmente con la barra è etichettare):
È questo un bug in ExtJS? Come posso aggirare questo? Esatto codice ExtJS che produce questo output:
var store = Ext.create('Ext.data.JsonStore', {
fields: ['name', 'data'],
data: [
{ 'name': 'metric one', 'data':5 }
]
});
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: 'insideEnd',
field: 'data',
renderer: Ext.util.Format.numberRenderer('0'),
orientation: 'horizontal',
color: '#333',
'text-anchor': 'middle'
},
xField: 'name',
yField: 'data'
}]
});
L'esempio sposta la barra, non l'etichetta. L'etichetta è ancora in paradiso. Tuttavia mi ha dato speranza. –
A un esame più attento, posso vedere che l'attributo y viene impostato su NaN sul tag di testo che avvolge l'etichetta ... esiste un modo per sovrascrivere manualmente il calcolo che ne risulta? –