This might be useful to those who want to add chart dynamically. created store ('YearlyReports') with above data.
chart in panel
{
xtype: 'chart',
id: 'yearlyChart',
style: 'background:#fff',
store: {},
animate: true,
theme: 'category1',
legend: {
position: 'bottom'
}
wrote following painted function in config-listeners
listeners: {
painted: function() {
var store = Ext.getStore('YearlyReports').getAt(0).data,
chart = Ext.getCmp('yearlyChart'),
seriesArray = new Array(),
axesArray = new Array(),
fields = new Array(),
lineColors = ['#115fa6','#94ae0a','#a61120'],
markerColors = ['#94ae0a', '#a61120', '#115fa6'];
for(var j=1;j<store.fields.length;j++) {
fields.push(store.fields[j]);
seriesArray.push(
new Ext.chart.series.Line({
type: 'line',
yField: [store.fields[j]],
xField: 'name',
stacked: false,
style: {
smooth: true,
stroke: lineColors[j-1],
lineWidth: 3,
shadowColor: 'rgba(0,0,0,0.7)',
shadowBlur: 10,
shadowOffsetX: 3,
shadowOffsetY: 3
},
marker: {
type: 'circle',
stroke: markerColors[j-1],
fill: markerColors[j-1],
lineWidth: 2,
radius: 4,
shadowColor: 'rgba(0,0,0,0.7)',
shadowBlur: 10,
shadowOffsetX: 3,
shadowOffsetY: 3,
fx: {
duration: 300
}
}
}));
}
axesArray.push(
new Ext.chart.axis.Numeric({
type: 'numeric',
position: 'left',
fields: fields,
title: 'Purchases',
minorTickSteps: 1,
grid: {
odd: {
opacity: 1,
fill: '#ddd',
}
},
style: {
axisLine: false,
estStepSize: 20,
stroke: '#ddd',
'stroke-width': 0.5
},
})
);
axesArray.push(
new Ext.chart.axis.Category({
type: 'category',
position: 'bottom',
fields: ['name'],
title: 'Month of the Year',
style: {
estStepSize: 1,
stroke: '#999'
}
})
);
var data = {"data" : store.data};
chart.setStore(data);
chart.setAxes(axesArray);
chart.setSeries(seriesArray);
}
},