Ну я новичок в Google картах, IAM игры с категорией фильтра для while.but я havn't был в состоянии сделать его работу, как мне нравитсяКак настроить категорию фильтра в диаграммах Google
var data = new google.visualization.DataTable();
data.addColumn("string", "Date");
data.addColumn("number", "Retailer 1");
data.addColumn("number", "Retailer 3");
data.addColumn("number", "Retailer 2");
data.addRows([
["01/12", 160, {v: 208, f: '208'},{v: 320, f: '320'}],
["02/12", 570, {v: 741, f: '741'},{v: 1140, f: '1140'}],
["03/12", 385, {v: 497, f: '497'},{v: 770, f: '770'}],
["04/12", 328, {v: 425, f: '425'},{v: 656, f: '656'}],
["05/12", 445, {v: 577, f: '577'},{v: 890, f: '890'}],
["06/12", 406, {v: 525, f: '525'},{v: 812, f: '812'}],
["07/12", 249, {v: 475, f: '475'},{v: 772, f: '772'}],
]);
var columnsTable = new google.visualization.DataTable();
columnsTable.addColumn('number', 'colIndex');
columnsTable.addColumn('string', 'colLabel');
var initState= {selectedValues: []};
// put the columns into this data table (skip column 0)
for (var i = 1; i < data.getNumberOfColumns(); i++) {
columnsTable.addRow([i, data.getColumnLabel(i)]);
}
// you can set individual columns to be the default columns (instead of populating via the loop above) like this:
// initState.selectedValues.push(data.getColumnLabel(4));
var chart = new google.visualization.ChartWrapper({
chartType: 'ColumnChart',
containerId: 'chart_div',
dataTable: data,
options: {
width: 420,
height: 200,
isStacked: true ,
title:'Sum Of Quant Column Labels By Retailers',
colors:['#3366cc','#FF5733','#808080'],
bar: {groupWidth:'40%'},
chartArea:{left:32,width:'70%'},
}
});
var columnFilter = new google.visualization.ControlWrapper({
controlType: 'CategoryFilter',
containerId: 'colFilter_div',
dataTable: columnsTable,
options: {
filterColumnLabel: 'colLabel',
filterColumnIndex: 1,
useFormattedValue: true,
ui: {
label: 'Retailers',
allowTyping: false,
allowMultiple: false,
caption : 'All Retailers',
allowNone: true,
selectedValuesLayout: 'belowStacked'
}
},
state: initState
});
function setChartView() {
var state = columnFilter.getState();
var row;
var view = {
columns: [0]
};
for (var i = 0; i < state.selectedValues.length; i++) {
row = columnsTable.getFilteredRows([{column: 1, value: state.selectedValues[i]}])[0];
view.columns.push(columnsTable.getValue(row, 0));
}
// sort the indices into their original order
view.columns.sort(function (a, b) {
return (a - b);
});
chart.setView(view);
chart.draw();
}
google.visualization.events.addListener(columnFilter, 'statechange', setChartView);
setChartView();
columnFilter.draw();
Вот мой код, что происходит прямо сейчас, я не могу сделать выбор для выбора всех данных за один раз, я добавляю заголовок для «Все розничные продавцы», но это просто подпись больше ничего, Когда я выберите «Все розничные продавцы», графики не изменяются.
Все, что я хочу, это когда я выбираю «Все розничные продавцы», все розничные продавцы показаны на диаграмме. Любая помощь сделает мир полезной для меня.
Спасибо, Анкит Rauthan
с использованием опции 'allowNone: true' должен отображать все данные, когда в фильтре ничего не выбрано - по умолчанию не выбрано значение _select all_ – WhiteHat
@WhiteHat прежде всего спасибо помощнику за получение интерселя, ну я уже написал свой код выше .allowNone уже прав, но когда я его выбираю, он показывает «Недостаточно столбцов, чтобы рисовать запрошенный график». Не знаете, что на самом деле проблема. –
Я имею в виду, когда я не выбираю какой-либо вариант, он показывает «Недостаточно столбцов для рисования запрошенной диаграммы». Я просто не могу понять, в чем проблема: –