Sto utilizzando Ext 5 e desidero colorare i segmenti in un grafico a linee in base ai valori. Mostra la linea in verde se il valore è maggiore del bersaglio altrimenti rosso.Grafico a linee con segmenti multicolori
C'è un modo per cambiare il colore di un segmento di linea nel grafico a linee Ext in base al suo valore?
sono riuscito a trovare che non esiste un modo integrato di fare questo in sencha da questo link
ho provato anche aggiungere uno sprite linea dinamica sopra la linea di fare un impatto di vari colori. Ha funzionato. Ma non sono riuscito a trovare le esatte coordinate x, y per disegnare dinamicamente questa linea personalizzata.
Questo è il codice che ho provato finora.
Ext.onReady(function() {
var data = [{
'date': '1',
'data2': 4
}, {
'date': '2',
'data2': 8
}, {
'date': '3',
'data2': 12
}, {
'date': '4',
'data2': 6
}, {
'date': '5',
'data2': 36
}];
Ext.create('Ext.chart.Chart', {
renderTo: Ext.getBody(),
width: 500,
height: 300,
store: {
fields: ['name', 'data2'],
data: data
},
listeners: {
redraw: function(){
var chart = this;
var series = chart.series[0];
var dataRange = series.dataRange;
var large = dataRange.find(function(v){ return v>14 });
if(large){
var line = series.getSurface().add({
type: 'line',
fromX: 354,
fromY: 75,
toX: 465,
toY: 257,
zIndex: 2000,
stroke: 'green',
'stroke-width': 2,
}).show(true);
}
}
},
axes: [{
type: 'numeric',
position: 'left',
fields: ['data2'],
title: {
text: 'Stores Visited',
fontSize: 15
},
grid: true,
minimum: 0
}, {
type: 'category',
position: 'bottom',
fields: ['date'],
title: {
text: 'Date',
fontSize: 15
}
}],
series: [{
type: 'line',
style: {
stroke: 'red',
lineWidth: 2
},
xField: 'date',
yField: 'data2'
}]
});
});
Ho già provato questo. Ma poiché il mio asse x rappresenta date e non valori numerici, non posso personalizzare i dati come mostrato nel tuo violino. – Gilsha
@Gilsha È possibile convertire facilmente le date in numeri o viceversa ai fini del disegno grafico. Se stai usando la 'Data' incorporata di JavaScript, i metodi di conversione sono [' date.getTime() '] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime) e ['new Date (value)'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date). –