Javascript 在没有绘图功能的情况下,如何更改谷歌图表的背景色

Javascript 在没有绘图功能的情况下,如何更改谷歌图表的背景色,javascript,charts,google-visualization,Javascript,Charts,Google Visualization,在这里。我有基本的谷歌图表。我想更改图表的背景色。 它的画图功能很好, 但问题是我只需要改变谷歌图表的颜色,而不需要使用数据或绘图功能重新渲染 像这样 function changeColor(){ gchart.backgroundColor='red'; } 而不是这个 function changeColor(){ chartOption.backgroundColor='red'; gChart.draw([somearrayToDataTable], chartOp

在这里。我有基本的谷歌图表。我想更改图表的背景色。 它的画图功能很好, 但问题是我只需要改变谷歌图表的颜色,而不需要使用数据或绘图功能重新渲染

像这样

function changeColor(){
   gchart.backgroundColor='red';
}
而不是这个

function changeColor(){
   chartOption.backgroundColor='red';
   gChart.draw([somearrayToDataTable], chartOption)
}

如果要更改图表的一个配置选项并更新图表,
唯一的办法是重新绘制图表

否则,您必须手动更改图表生成的SVG,
在图表的就绪事件上

在这种情况下,背景色将设置在图表的主
元素上。
在ready事件中,我们可以使用原始颜色查找元素并更改
'fill'
属性

设置与颜色相关的配置选项时,
图表会将任何命名颜色转换为十六进制值

“红色”=#ff0000

图表还将配置选项中使用的任何十六进制值转换为小写

#FF0000将变成#FF0000

为此,我们必须在配置选项中使用小写十六进制值。
e、 g

请参阅以下工作片段

google.charts.load('current'{
软件包:['corechart']
}).然后(函数(){
var data=new google.visualization.DataTable();
data.addColumn('number','x');
data.addColumn('number','y')
data.addRows([
[0, 0],
[1, 1],
[2, 2],
[3, 3]
]);
变量选项={

背景色:“#008000”,如果要更改图表的一个配置选项并更新图表,
唯一的办法是重新绘制图表

否则,您必须手动更改图表生成的SVG,
在图表的就绪事件上

在这种情况下,背景色将设置在图表的主
元素上。
在ready事件中,我们可以使用原始颜色查找元素并更改
'fill'
属性

设置与颜色相关的配置选项时,
图表会将任何命名颜色转换为十六进制值

“红色”=#ff0000

图表还将配置选项中使用的任何十六进制值转换为小写

#FF0000将变成#FF0000

为此,我们必须在配置选项中使用小写十六进制值。
e、 g

请参阅以下工作片段

google.charts.load('current'{
软件包:['corechart']
}).然后(函数(){
var data=new google.visualization.DataTable();
data.addColumn('number','x');
data.addColumn('number','y')
data.addRows([
[0, 0],
[1, 1],
[2, 2],
[3, 3]
]);
变量选项={

背景色:‘#008000’,//谢谢,我试过了,但这个方法不是官方的,所以我搬到了high chartsjs,我真的很感激你的努力。我接受这个答案作为解决方案,谢谢谢谢,我试过了,但这个方法不是官方的,所以我搬到high chartsjs,我真的很感激你的努力。我接受这个答案作为解决方案,谢谢s
backgroundColor: '#008000',  // <-- green
google.visualization.events.addListener(chart, 'ready', function () {
  var rectangles = chart.getContainer().getElementsByTagName('rect');
  Array.prototype.forEach.call(rectangles, function(rect) {
    if (rect.getAttribute('fill') === options.backgroundColor) {
      rect.setAttribute('fill', '#ff0000');
    }
  });
});