I have this Google Bar Chart:
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', '');
data.addColumn('number', '');
data.addRows(2);
data.setValue(0, 0, 'Value 1');
data.setValue(0, 1, 250);
data.setValue(1, 0, 'Value 2');
data.setValue(1, 1, 100);
var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
chart.draw(data, {
width: 400,
height: 175,
title: 'Total',
legend: 'none',
});
}
All runs OK, but the thing is, both bars have the same color, and I would like to be able to have different colors for each bar.
Can anyone help me on this?
Here is my answer. It takes care of converting a array into dataTable
Exactly, you have to insert the colors attribute into the options variable.
One hacky way to do things is put them all in the same row, and API would assign distinct colors to this. Hence for your example
If you need your own colors add this in the chart.draw options like,
If there are too many bars though, this may be a bad option for that please look at
http://code.google.com/apis/chart/interactive/docs/reference.html#barformatter
For those who are using Pie Chart:
Add the
slices
Not sure why no-one mentioned style role columns - I assume they were added after the initial question, but for anyone looking for this now, a better way is:
You can set many other CSS styles to make your charts REALLY ugly.
https://developers.google.com/chart/interactive/docs/gallery/columnchart#Colors
NOTE that it does not seem to support rgba() specified colors - you have to set opacity on the style role.
Here's a fiddle:
http://jsfiddle.net/a1og7rq4/
SIDENOTE: If you have multiple series, then you need a style role column after each series data column.
Here is another fiddle showing that (with opacity as well): http://jsfiddle.net/v5hfdm6c/1
Here is the modified function (left the unmodified one above for clarity)
}
Please add this in options:
colors:['red','#009900']
Like: