1
\t \t google.load('visualization', '1.1', {
\t \t \t packages : [ 'controls' ]
\t \t });
\t \t google.load('visualization', '1', {
\t \t \t packages : [ 'table' ]
\t \t });
\t \t google.load('visualization', '1.0', {
\t \t \t 'packages' : [ 'corechart' ]
\t \t });
\t \t google.setOnLoadCallback(drawVisualization);
function drawVisualization() {
var data = [{tagId:'2a:10',isSafe:'Safe'},{tagId:'dd:80',isSafe:'Unsafe'},{tagId:'0a:07',isSafe:'Safe'},{tagId:'29:11',isSafe:'Safe'}];
var dataArray = [];
var datatable = new google.visualization.DataTable();
datatable.addColumn('string', 'TagID');
datatable.addColumn('string', 'Status');
$.each(data, function(i, obj) {
dataArray.push([ obj.tagId, obj.isSafe]);
});
datatable.addRows(dataArray);
var tagDivPicker = new google.visualization.ControlWrapper({
'controlType' : 'CategoryFilter',
'containerId' : 'tag_control_div',
'options' : {
\t \t \t \t \t filterColumnIndex : 0,
\t \t \t \t \t 'ui' : {
\t \t \t \t \t \t 'labelStacking' : 'vertical',
\t \t \t \t \t \t 'allowTyping' : false,
\t \t \t \t \t \t 'allowMultiple' : false
\t \t \t \t \t //,'cssClass':'form-control1 input-sm m-bot15'
\t \t \t \t \t }
}
});
var table_data = new google.visualization.ChartWrapper({
'chartType' : 'Table',
'containerId' : 'table_data',
'view' : {
'columns' : [ 0, 1]
}
});
var dataGroupColumnChart = google.visualization.data.group(
datatable, [1], [{
'column': 1,
'aggregation': google.visualization.data.count,
'type': 'number'
}]);
var pieChart = new google.visualization.ChartWrapper({
'chartType': 'PieChart',
'containerId': 'pie_chart',
'dataTable': dataGroupColumnChart,
options: {
'width': 600,
'height': 400,
title: 'Total Compliance',
slices: {0: {color: 'green'}, 1:{color: 'red'}}
}
});
pieChart.draw();
// Create the dashboard.
var dashboard = new google.visualization.Dashboard(document
.getElementById('dashboard'))
.bind([ tagDivPicker ],
[ table_data ]);
dashboard.draw(datatable);
google.visualization.events.addListener(tagDivPicker, 'statechange', function(event) {
pieChart.setDataTable(google.visualization.data.group(
// get the filtered results
table_data.getDataTable(),
[2], [{
'column': 2,
'aggregation': google.visualization.data.count,
'type': 'number'
}]
));
// redraw the pie chart to reflect changes
pieChart.draw();
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
\t <script type="text/javascript"
\t \t src="https://www.gstatic.com/charts/loader.js"></script>
<div id="dashboard">
\t <div style="float: left;" id="table_data"></div>
\t <div style="float: right;" id="pie_chart"></div>
\t <div id="tag_control_div"></div>
</div>
語境:
我使用谷歌圖的儀表盤和彙總操縱圖表。目前,我可以根據包含餅圖和CategoryFilter的多個過濾器更改儀表板數據。
當我選擇CategoryFilter並且如果只有一個切片可用,餅圖將採用第一個切片顏色,這不是很好的用戶界面。
例如,以下數據表明安全不安全圖表。所以傳說中的顏色將變成綠色,以保證安全,而紅色則變爲不安全。
問題陳述:
現在,如果沒有可用的安全記錄,然後餅圖應該顯示爲紅色片,但圖表需要第一片爲默認顏色如果有針對第二切片或圖例沒有記錄。
數據:
[{"tagId":"2a:10","isSafe":"Safe"},{"tagId":"dd:80","isSafe":"Unsafe"},{"tagId":"0a:07","isSafe":"Safe"},{"tagId":"29:11","isSafe":"Safe"}]
它的工作,謝謝很多。 –