Google Graphique: Diagramme circulaire tranche basée sur les légendes
\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>
Contexte:
J'utilise Google Chart tableau de bord et l'agrégation pour manipuler le tableau de. Actuellement, je suis en mesure de modifier les données du tableau de bord en fonction de plusieurs filtres, y compris un graphique à secteurs et un filtre de catégorie.
Lorsque je sélectionne le CategoryFilter et qu'il n'y a qu'une seule tranche disponible, le camembert prend la première couleur de tranche qui n'est pas la belle interface utilisateur.
Par exemple, les données ci-dessous suggèrent Safe-Unsafe Chart. La couleur des légendes sera donc verte pour la sécurité et rouge pour la sécurité.
Énoncé du problème:
Maintenant, s'il n'y a pas des documents de sécurité disponibles alors camembert censé montrer tranche avec la couleur rouge, mais le tableau prend la première tranche comme la couleur par défaut s'il n'y a pas de dossiers pour la deuxième tranche ou la légende.
données:
[{"tagId":"2a:10","isSafe":"Safe"},{"tagId":"dd:80","isSafe":"Unsafe"},{"tagId":"0a:07","isSafe":"Safe"},{"tagId":"29:11","isSafe":"Safe"}]
Il fonctionne, merci beaucoup. –