Seçenek A: Düğmeler
Verilerinizi filtrelemek için javascript çalışır (etiketi veya vs. kullanarak ya) bir düğme yapabilirsiniz olun. Bu, işaretlendiğinde javascript çalıştıracak üç düğme (veya 3 radyo seçim kutusu veya iki onay kutusu ve bir düğme veya herhangi bir şey) oluşturabileceğiniz anlamına gelir.
Bu javascript, seçiminiz için uygun sütunları içerecek şekilde verilerinizi filtreleyecek bir işlevi (muhtemelen SetColumns ile bir DataView Class kullanarak) içermelidir. Bunu yapmak için bir trilyon yolu vardır ve bazı genel verileri kullandığınızdan ve gerçek uygulamanız muhtemelen farklı olduğundan, verileriniz/kullanıcılarınız için en iyi olanı anlamanıza izin vereceğim.
Seçenek B: Google Görselleştirme
Ayrıca ayarlama birazcık Google Görselleştirme Category Filter Control kullanarak aynı yapabiliriz kontrol eder. here no'lu bir açıklama ile, asgallant here tarafından mükemmel bir örnek var. Bu bir ara tablo gerektirir, ancak kategori filtresinin nasıl çalıştığını/çalışmasını seviyorsanız iyi çalışır. Her şey sana bağlı! site kodu satır içi koymamı istiyor beri
, burada mısın:
google.load('visualization', '1', {packages: ['controls']});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Year');
data.addColumn('number', 'Foo');
data.addColumn('number', 'Bar');
data.addColumn('number', 'Baz');
data.addColumn('number', 'Cad');
data.addRows([
['2005', 45, 60, 89, 100],
['2006', 155, 50, 79, 24],
['2007', 35, 31, 140, 53],
['2008', 105, 23, 43, 82],
['2009', 120, 56, 21, 67],
['2010', 65, 19, 34, 134],
['2011', 80, 23, 130, 40],
['2012', 70, 140, 83, 90]
]);
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)]);
initState.selectedValues.push(data.getColumnLabel(i));
}
var chart = new google.visualization.ChartWrapper({
chartType: 'BarChart',
containerId: 'chart_div',
dataTable: data,
options: {
title: 'Foobar',
width: 600,
height: 400
}
});
chart.draw();
var columnFilter = new google.visualization.ControlWrapper({
controlType: 'CategoryFilter',
containerId: 'colFilter_div',
dataTable: columnsTable,
options: {
filterColumnLabel: 'colLabel',
ui: {
label: 'Columns',
allowTyping: false,
allowMultiple: true,
selectedValuesLayout: 'belowStacked'
}
},
state: initState
});
google.visualization.events.addListener(columnFilter, 'statechange', function() {
var state = columnFilter.getState();
var row;
var columnIndices = [0];
for (var i = 0; i < state.selectedValues.length; i++) {
row = columnsTable.getFilteredRows([{column: 1, value: state.selectedValues[i]}])[0];
columnIndices.push(columnsTable.getValue(row, 0));
}
// sort the indices into their original order
columnIndices.sort(function (a, b) {
return (a - b);
});
chart.setView({columns: columnIndices});
chart.draw();
});
columnFilter.draw();
}
sizin için çalışmış altında cevap, bu yüzden cevap yukarı/aşağı-oy okların altında onay işaretini tıklayınız ise Diğer insanlar bunun sizin sorununuzu çözdüğünü görebilir. Cevabım yeterince açık değilse ya da hala sorun yaşıyorsanız, lütfen sorunun ne olduğunu/neyin açık olmadığını açıklayan cevaba bir yorum ekleyin. – jmac