JSFiddle - React, Tailwind, and code Playground
HTML
<script src="http://www.google.com/jsapi?.js"></script>
<div id='chart_div'></div>
JavaScript
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Device');
data.addColumn('number', 'Received');
data.addColumn('number', 'Sent');
data.addRows([
['Device 1', 17848, 14222],
['Device 2', 12655, 11898]
]);
var formatter = new google.visualization.NumberFormat({pattern: '#,### bytes'});
var view = new google.visualization.DataView(data);
view.setColumns([0, {
type: 'number',
label: data.getColumnLabel(1),
calc: function (dt, row) {
// if "Received" < "Sent", then return "Received", else return null
var received = dt.getValue(row, 1);
var sent = dt.getValue(row, 2);
return (received < sent) ? {v: received, f: formatter.formatValue(received)} : null;
}
}, {
type: 'number',
label: data.getColumnLabel(2),
calc: function (dt, row) {
// if "Received" < "Sent", then return "Sent" - "Received", else return "Sent"
var received = dt.getValue(row, 1);
var sent = dt.getValue(row, 2);
return (received < sent) ? {v: sent - received, f: formatter.formatValue(sent)} : {v: sent, f: formatter.formatValue(sent)};
}
}, {
type: 'number',
label: data.getColumnLabel(1),
calc: function (dt, row) {
// if "Received" > "Sent", then return "Received" - "Sent", else return null
var received = dt.getValue(row, 1);
var sent = dt.getValue(row, 2);
return (received > sent) ? {v: received - sent, f: formatter.formatValue(received)} : null;
}
}, {
type: 'number',
label: 'Total',
calc: function (dt, row) {
var min = Math.min(dt.getValue(row, 1), dt.getValue(row, 2));
var total = dt.getValue(row, 1) + dt.getValue(row, 2);
return {v: min, f: formatter.formatValue(total)};
}
...