2014-11-05 14 views
8

Sono un principiante di JavaScript che utilizza morris.js per creare un grafico a barre in cui ho bisogno che ogni barra contenente un valore y sia di un colore diverso. Il codice che segue mostra quello che ho fatto finoraColori delle barre varianti con il grafico a barre morris.js?

Morris.Bar({ 
element: 'calls-made', 
data: [ 
{ y: 'Person A', a: 10 }, 
{ y: 'Person B', a: 15 }, 
{ y: 'Person C', a: 12 }, 
{ y: 'Person D', a: 20 } 
], 
xkey: 'y', 
ykeys: ['a'], 
labels: ['Calls'], 
barColors: ["#B21516", "#1531B2", "#1AB244", "#B29215"], 
hideHover: 'always', 
}); 

vorrei il bar per 'Persona A' ad essere un colore e poi 'persona B' ad essere un altro colore e così via, ma al momento tutte le barre vengono visualizzate come il primo colore dell'array. Qualcuno sa se c'è un modo per farlo? Mille grazie!

risposta

25
Morris.Bar({ 
element: 'bar-example', 
data: [ 
{ y: 'Person A', a: 10 }, 
{ y: 'Person B', a: 15 }, 
{ y: 'Person C', a: 12 }, 
{ y: 'Person D', a: 20 } 
], 
xkey: 'y', 
ykeys: ['a'], 
labels: ['Calls'], 
hideHover: 'always', 
barColors: function (row, series, type) { 
console.log("--> "+row.label, series, type); 
if(row.label == "Person A") return "#AD1D28"; 
else if(row.label == "Person B") return "#DEBB27"; 
else if(row.label == "Person C") return "#fec04c"; 
else if(row.label == "Person D") return "#1AB244"; 
} 
}); 
+0

Peffect. Questo mi ha aiutato. +1 – Bhaskara

Problemi correlati