Z tego co udało mi się znaleźć, można użyć metody
(...),
series: [style: {colors: arrayBuiltFromStore }],
(...)
Jeśli tworzysz wykres kołowy (lub inny wykres z series.colors przypisują), i działa świetnie.
Jeśli używasz wykresu, który nie obsługuje serii.colors ... staje się nieco bardziej skomplikowany. Zauważyłem, że używanie metody renderer działa całkiem dobrze. Jedynym problemem związanym z tą metodą (którą widzę od razu) jest to, że nie zmienia ona kolorów w legendzie. Trochę dalszej edycji wymagałoby sprawdzenie, czy można go wyciągnąć ze sklepu.
Jeśli znasz problem z legendą, daj mi znać, ale mam nadzieję, że to pomoże.
Uwaga: Nie wszystkie zmienne użyte w poniższym skrypcie są wypełnione w skrypcie.
function myColorer(rec) {
var aFiller = new Array('#0000FF','#31CD31','#FFFF00','#FF0000');
return aFiller[rec];
}
Ext.onReady(function() {
var sDataStore = new Ext.data.JsonStore(sPathToDataStore);
chart = new Ext.chart.Chart({
renderTo: document.getElementById('test-graph'),
width: 800,
height: 600,
animate: true,
store: sDataStore,
legend: {
position: 'right',
isVertical: true,
},
axes: [{
type: 'Numeric',
grid: true,
position: 'left',
fields: ['field1','field2','field3','field4'],
title: 'Title Here',
grid: {
odd: {
opacity: 1,
fill: '#ddd',
stroke: '#bbb',
'stroke-width': 1
}
},
minimum: 0,
adjustMinimumByMajorUnit: 0
}, {
type: 'Category',
position: 'bottom',
fields: label1,
title: sXAxisLabel,
grid: true,
}],
series: [{
renderer: function(sprite, record, curAttr, index, store) {
var color = myColorer(index);
return Ext.apply(curAttr, {
fill: color
});
},
type: 'area',
highlight: false,
axis: 'left',
xField: label1,
yField: ['field1','field2','field3','field4'],
style: {
opacity: 0.93
}
}]
});
});
Masz na myśli wykresy ExtJS lub wykresy YUI? O ile mogę powiedzieć, nie są one takie same. –
Wewnętrznie ExtJS korzysta z funkcji i klas wykresów YUI. Jednak używam interfejsu API ExtJs do wyświetlania wykresów. – shane87
Czy próbowałeś setStyles() lub ustawienie extraStyle(), a następnie odświeżanie wykresu? – McStretch