Я переношу приложение ExtJs 3 в ExtJs 4. Одним из компонентов, который мне нужно изменить, является диаграмма, на которой есть серия баров и строк. Он отображает данные за предыдущий и текущий годы. Помимо диаграммы есть флажок «Сравнить с предыдущим годом». Когда он проверяет, все строки должны быть видимыми и скрытыми, если они не проверены. В ExtJs 3 Я выполнил эту задачу, установив видимость: скрытый для стилей серии таким образом: chart.setSeriesStyles (...). Но в ExtJs 4 эта функция отсутствует, и я не могу найти другого способа скрыть ряды по требованию. Вот код моего графика:Скрыть серию диаграмм в ExtJs 4
var store = Ext.create('Ext.data.Store', {
fields: [
'month','data1','data2','data3','prev_data1','prev_data2','prev_data3'
],
proxy: {
type: 'ajax',
url: '/getmonthlystats.php'
}
});
this.statChart = Ext.create('Ext.chart.Chart', {
flex: 1,
store: store,
axes: [{
type: 'Numeric',
position: 'left',
minimum: 0,
maximum: 100,
fields: [
'data1',
'data2',
'data3',
'prev_data1',
'prev_data2',
'prev_data3'
],
label: {
renderer: Ext.util.Format.numberRenderer('0,0')
},
grid: true
},{
type: 'Category',
position: 'bottom',
fields: ['month'],
label: {
rotate: {
degrees: 315
}
}
}],
series: [{
type: 'column',
yField: ['data1','data2','data3'],
xField: 'month'
},
{
type: 'line',
yField: 'prev_data1',
xField: 'month'
},{
type: 'line',
yField: 'prev_data2',
xField: 'month'
},{
type: 'line',
yField: 'prev_data3',
xField: 'month'
}]
});
Таким образом, линии prev_data1, prev_data2, prev_data3 должны быть показаны или скрыты при необходимости (в зависимости от состояния флажка). Кто-нибудь знает, как это сделать?
Thanx.
он скрывает линии, но все точки, которые указывают пики линейных диаграмм, все еще отображаются. – ischenkodv
хорошо, он работает в 4.0.2, не уверен в других версиях. Попробуйте посмотреть исходный код серии. –
Я установил showMarkers: false для строк, чтобы скрыть маркеры вообще. Вот нормально для меня. Другое решение будет полностью воссоздать диаграмму с новой конфигурацией серии. – ischenkodv