var data = google.visualization.arrayToDataTable(stats_data);
var options = {
width: 1400,
height: 400,
legend: { position: 'top', maxLines: 3 },
bar: { groupWidth: '75%' },
isStacked: true,
bars: 'vertical',
colors:['#999','#346ac9', '#279423', '#fc9826'],
};
var chart = new google.charts.Bar(document.getElementById('chart-recent'));
chart.draw(data, google.charts.Bar.convertOptions(options));
我有一个堆积条形图,我希望每种颜色都不同(灰色,蓝色,绿色,橙色)。但是,这些部分的颜色只采用多种亮度的第一种颜色(灰色)。
我也在我的options
:
series: [
{color: '#999'},
{color: '#346ac9'},
{color: '#279423'},
{color: '#fc9826'}
]
如何让每个系列都有不同的颜色?
答案 0 :(得分:2)
在原始问题出现时,材料条形图可能还不支持堆积条形图的自定义颜色。
今天,series
配置选项作为颜色对象数组似乎工作正常。请参阅以下示例中的colors
变量。
示例代码:
var data = [
['Sector', 'High', 'Medium', 'Low' ],
['Agriculture', 18, 9, 29],
['Education', 2, 14, 10],
['Healthcare', 4, 6, 41],
['Manufacturing', 36, 10, 3]
];
var colors = [
{ color: 'indianred' }, //high
{ color: 'khaki' }, //medium
{ color: 'seagreen' }, //low
];
function drawChart() {
var options = {
chart: { title: 'Risk by sector' },
legend: { position: 'top' }, //not yet supported
bars: 'horizontal',
stacked: true,
series: colors
};
var chartData = google.visualization.arrayToDataTable(data);
var elem = $('figure#health-chart')[0];
var chart = new google.charts.Bar(elem);
chart.draw(chartData, options);
}
google.charts.load('current', { packages: ['bar'] });
google.charts.setOnLoadCallback(drawChart);
结果图表:
摆弄代码:
https://jsfiddle.net/yprnLvx0/
配置选项
series
一组对象,每个对象描述图表中相应系列的格式。要使用系列的默认值,请指定一个空对象{}。如果未指定系列或值,则将使用全局值。
文档:
https://developers.google.com/chart/interactive/docs/gallery/barchart#configuration-options
答案 1 :(得分:0)
我能够使颜色有效here
生成图表时,我必须使用:new google.visualization.ColumnChart(...)
而不是new google.charts.Bar(...)
,否则它将无法正确堆叠。
您可能还想确保使用的是最新版Google图表。在上面的小提琴中,我使用developer docs中使用https://www.google.com/jsapi
来自动加载所有内容的样本。