Правильный ответ заключается в том, что это зависит от того, классические ли это Google или материальные Google.Если вы используете классическую версию Google Charts, несколько из приведенных выше предложений работают.Однако, если вы используете более новые типы материалов Google-диаграммы, вам придется по-разному указывать параметры или преобразовывать их (см. google.charts.Bar.convertOptions(options)
ниже).Кроме того, в случае диаграмм материалов, если вы укажете непрозрачность для всей диаграммы, непрозрачность (только) не будет применяться к области диаграммы.Поэтому вам необходимо явно указать цвет с непрозрачностью для области диаграммы, даже для той же цветовой комбинации.
В целом: в версии Google Charts для материала отсутствуют некоторые функции, которые есть у Classic (метки наклонной оси), линии тренда, пользовательская раскраска столбцов, комбинированные диаграммы и многие другие), и наоборот: форматирование чисел и двойная (тройная, четверная, ...) оси поддерживаются только версией материала.
В случае, если функция поддерживается обеими таблицами материалов, иногда требуется другой формат для опций.
<body>
<div id="classic_div"></div>
<div id="material_div"></div>
</body>
JS:
google.charts.load('current', { 'packages': ['corechart', 'bar'] });
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Year', 'Sales', 'Expenses'],
['2004', 1000, 400],
['2005', 1170, 460],
['2006', 660, 1120],
['2007', 1030, 540],
['2009', 1120, 580],
['2010', 1200, 500],
['2011', 1250, 490],
]);
var options = {
width: 1000,
height: 600,
chart: {
title: 'Company Performance',
subtitle: 'Sales, Expenses, and Profit: 2014-2017'
},
// Accepts also 'rgb(255, 0, 0)' format but not rgba(255, 0, 0, 0.2),
// for that use fillOpacity versions
// Colors only the chart area, simple version
// chartArea: {
// backgroundColor: '#FF0000'
// },
// Colors only the chart area, with opacity
chartArea: {
backgroundColor: {
fill: '#FF0000',
fillOpacity: 0.1
},
},
// Colors the entire chart area, simple version
// backgroundColor: '#FF0000',
// Colors the entire chart area, with opacity
backgroundColor: {
fill: '#FF0000',
fillOpacity: 0.8
},
}
var classicChart = new google.visualization.BarChart(document.getElementById('classic_div'));
classicChart.draw(data, options);
var materialChart = new google.charts.Bar(document.getElementById('material_div'));
materialChart.draw(data, google.charts.Bar.convertOptions(options));
}
Демонстрация Fiddle: https://jsfiddle.net/csabatoth/v3h9ycd4/2/