更改Google堆积条形图颜色(材料条形图)

时间:2015-04-29 05:49:25

标签: javascript charts material-design

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));

我有一个堆积条形图,我希望每种颜色都不同(灰色,蓝色,绿色,橙色)。但是,这些部分的颜色只采用多种亮度的第一种颜色(灰色)。

enter image description here

我也在我的options

中尝试过此操作
series: [
    {color: '#999'},
    {color: '#346ac9'},
    {color: '#279423'},
    {color: '#fc9826'}
]

如何让每个系列都有不同的颜色?

2 个答案:

答案 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);

结果图表: Bar Chart

摆弄代码:
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来自动加载所有内容的样本。