我試圖在點擊一個PieChart的選定片段時遇到很大麻煩。從選定的谷歌圖表切片中獲取數據PieChart
文檔說:
selection_array:選擇對象的數組,每一個描述用於創建可視化 (一個DataView或數據表)的基礎表一個 數據元素。每個對象都具有屬性行和/或列,其中底層DataTable中所選項目 的行和/或列的索引。如果行屬性爲空,則選擇 是一列;如果column屬性爲空,那麼 選擇是一行; 如果兩者都非空,則它是具體數據 * item。您可以調用DataTable.getValue() *方法獲取所選項目的值 。檢索到的陣列可以傳遞到 爲setSelection()
在我的情況,我得到空從getSelection(),然後我不能想出怎樣做才能得到我想要的值(對應於列的標籤那片)。
任何答案會很apreciated :)
的什麼IM做的示例代碼:
google.load('visualization', '1', {packages: ['controls']});
google.setOnLoadCallback(drawVisualization);
var data;
var pie_area;
function drawVisualization() {
// Prepare the data
data = google.visualization.arrayToDataTable([
["rbd", "nombre", "area", "dependencia", "simceMat", "ubicacionLon", "ubicacionLat", "simceLen", "nivel"],
[22616, "Colegio Mozart", "Urbana", "Part_Sub", 228, -72.981148, -41.479872, 254, "Basico"],
[22686,"Escuela Basica Camelias","Urbana","Muni",228,-72.980075,-41.474599,253, "Medio"],
[40351,"Colegio Bosquemar","Urbana","Part_Sub",290,-72.981148,-41.479872,280, "Medio"],
[7633,"Escuela Capitan Arturo Prat Chacon","Urbana","Muni",317,-72.909565,-41.474567,314, "Basico"],
[7659,"Escuela Rural Alerce","Rural","Muni",230,-72.91767,-41.399121,249, "Basico"],
[7671,"Escuela Rural Lagunitas","Rural","Muni",261,-72.964282,-41.459485,269, "Medio"],
[7690,"Escuela Rural Rio Blanco","Rural","Muni",217,-72.638597,-41.455786,229, "Medio"],
[7700,"Colegio San Francisco Javier","Urbana","Part",305,-72.942089,-41.470351,303, "Basico"],
[7717,"Instituto Aleman de Puerto Montt","Urbana","Part",321,-72.932482,-41.470001,310, "Medio"],
[7718,"The American School","Urbana","Part",317,-72.909,-41.456,314, "Medio"]
]);
var fltArea = new google.visualization.ControlWrapper({
'controlType': 'CategoryFilter',
'containerId': 'f1',
'options': {
'filterColumnLabel': 'area',
'ui': {
'labelStacking': 'vertical',
'allowTyping': false,
'allowMultiple': false
}
}
});
pie_area = new google.visualization.ChartWrapper({
'chartType': 'PieChart',
'containerId': 'chart2',
'options': {
'width': 300,
'height': 300,
'legend': 'none',
'title': 'Area',
'pieSliceText': 'label'
},
'view': {'columns': [2]}
});
new google.visualization.Dashboard(document.getElementById('dashboard')).bind([fltArea], [pie_area]).draw(data);
google.visualization.events.addListener(pie_area, 'select', onAreaSliceSelected);
}
function onAreaSliceSelected(){
var sel = pie_area.getChart().getSelection(); //is always null
console.log('you selected '+sel); //displays you selected null
}
好JMAC,我現在看到了。但是,如果我想獲得該「區域」列的圖表,我應該使用我想要顯示的數據創建自己的「迷你」DataTable,並在事件發生時更新它? ,因爲我想顯示4個PieCharts,代表4個類別,並提供了從每個圖表中點擊切片以過濾非常大的數據表格的選項的選項。 例如: 我收到了很多學校名單, 單擊「區域圖表」中的「城市」片段可以篩選出每個不在城市地區的學校。 2 - 在下圖中選擇「公共」,並篩選出每個不公開的學校。 等等。 – rccursach
我建議把你想要讓用戶篩選數據的邏輯放在一起,然後找出最好的方法來組織你的數據來做到這一點。不幸的是,這樣做並不容易,然後隨着時間的推移進行更新,並且通常會事先計劃好一些事情,以便了解您需要多少表格/圖表,從長遠來看可以爲您節省很多麻煩。 – jmac