javascript - How to show percentage in google BarChart? -
how total number , percentage in google charts? want percent , number in google charts, there options need set?
google.charts.load('current', {packages: ['corechart', 'bar']}); google.charts.setonloadcallback(drawbasic); function drawbasic() { var data = google.visualization.arraytodatatable([ ['city', '2010 population',], ['new york city, ny', 8175000], ['los angeles, ca', 3792000], ['chicago, il', 2695000], ['houston, tx', 2099000], ['philadelphia, pa', 1526000] ]); var options = { title: 'population of largest u.s. cities', chartarea: {width: '50%'}, }; var chart = new google.visualization.barchart(document.getelementbyid('chart_div')); chart.draw(data, options); }
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <div id="chart_div"></div>
sample output below:
use group method find total
var groupdata = google.visualization.data.group( data, [{column: 0, modifier: function () {return 'total'}, type:'string'}], [{column: 1, aggregation: google.visualization.data.sum, type: 'number'}] );
and dataview
add 'annotation'
column
see following working snippet...
google.charts.load('current', { callback: drawbasic, packages: ['corechart'] }); function drawbasic() { var data = google.visualization.arraytodatatable([ ['city', '2010 population',], ['new york city, ny', 8175000], ['los angeles, ca', 3792000], ['chicago, il', 2695000], ['houston, tx', 2099000], ['philadelphia, pa', 1526000] ]); var groupdata = google.visualization.data.group( data, [{column: 0, modifier: function () {return 'total'}, type:'string'}], [{column: 1, aggregation: google.visualization.data.sum, type: 'number'}] ); var formatpercent = new google.visualization.numberformat({ pattern: '#,##0.0%' }); var formatshort = new google.visualization.numberformat({ pattern: 'short' }); var view = new google.visualization.dataview(data); view.setcolumns([0, 1, { calc: function (dt, row) { var amount = formatshort.formatvalue(dt.getvalue(row, 1)); var percent = formatpercent.formatvalue(dt.getvalue(row, 1) / groupdata.getvalue(0, 1)); return amount + ' (' + percent + ')'; }, type: 'string', role: 'annotation' }]); var options = { annotations: { alwaysoutside: true }, title: 'population of largest u.s. cities', chartarea: {width: '50%'}, }; var chart = new google.visualization.barchart(document.getelementbyid('chart_div')); chart.draw(view, options); }
<script src="https://www.gstatic.com/charts/loader.js"></script> <div id="chart_div"></div>
Comments
Post a Comment