Google 图表 - 堆积条形图。如何在每个栏中引入不同的颜色
Google charts - Stacked Bar Chart. How to introduce different colours within each bar
我正在使用 google api 创建堆积条形图。每个条将由 3 个 "slices" 组成,代表我们收到的负面、中立和正面反馈。
我的数据和选项代码如下所示:
data = google.visualization.arrayToDataTable([
['Category', 'Negative', 'Neutral', 'Positive', ],
['icon', 10, 800, 5],
['colour', 5, 5, 5],
['copy', 5, 5, 5],
['navigation', 5, 5, 5]
]);
};
options = {
isStacked: true,
width: '100%',
height: 400,
hAxis: {title: 'Category', textStyle: {bold : true, fontSize: 24}, titleTextStyle: {color: 'White'}},
vAxis: {title: 'Responses', textStyle: {bold : true, fontSize: 24}, titleTextStyle: {color: 'White'}},
};
var chart = new google.charts.Bar(document.getElementById('categoryChart'));
chart.draw(data, google.charts.Bar.convertOptions(options));
我一直在尝试通过向选项添加这样的数组来解决这个问题
colors:['red','blue', 'green'].
选项,但只选择第一种颜色(红色)并将其应用于整个条(切片仅由渐变分隔)。
有什么技巧可以控制条形图各部分的颜色吗?
最佳,
亚当
可以这样改变颜色样式:
data = google.visualization.arrayToDataTable([
['Category', 'Negative', 'Neutral', 'Positive', { role: 'style' }],
['icon', 10, 800, 5, '#b87333'],
['colour', 5, 5, 5, 'silver'],
['copy', 5, 5, 5, 'gold'],
['navigation', 5, 5, 5, 'color: #e5e4e2']
]);
更新:
问题出现在这一行:
var chart = new google.charts.Bar(document.getElementById('categoryChart'));
您使用 google.charts.Bar
而不是 google.visualization.ColumnChart
工作示例:
google.load('visualization', '1', {
packages: ['corechart', 'bar']
});
google.setOnLoadCallback(drawBarColors);
function drawBarColors() {
var data = google.visualization.arrayToDataTable([
['Category', 'Negative', 'Neutral', 'Positive'],
['icon', 10, 100, 5],
['colour', 5, 5, 5],
['copy', 5, 5, 5],
['navigation', 5, 5, 5]
]);
var options = {
isStacked: true,
width: '100%',
height: 400,
colors: ['red', 'blue', 'green'],
hAxis: {
title: 'Category',
textStyle: {
bold: true,
fontSize: 24
},
titleTextStyle: {
color: 'White'
}
},
vAxis: {
title: 'Responses',
textStyle: {
bold: true,
fontSize: 24
},
titleTextStyle: {
color: 'White'
}
},
};
var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<div id="chart_div"><div>
参考
我正在使用 google api 创建堆积条形图。每个条将由 3 个 "slices" 组成,代表我们收到的负面、中立和正面反馈。
我的数据和选项代码如下所示:
data = google.visualization.arrayToDataTable([
['Category', 'Negative', 'Neutral', 'Positive', ],
['icon', 10, 800, 5],
['colour', 5, 5, 5],
['copy', 5, 5, 5],
['navigation', 5, 5, 5]
]);
};
options = {
isStacked: true,
width: '100%',
height: 400,
hAxis: {title: 'Category', textStyle: {bold : true, fontSize: 24}, titleTextStyle: {color: 'White'}},
vAxis: {title: 'Responses', textStyle: {bold : true, fontSize: 24}, titleTextStyle: {color: 'White'}},
};
var chart = new google.charts.Bar(document.getElementById('categoryChart'));
chart.draw(data, google.charts.Bar.convertOptions(options));
我一直在尝试通过向选项添加这样的数组来解决这个问题
colors:['red','blue', 'green'].
选项,但只选择第一种颜色(红色)并将其应用于整个条(切片仅由渐变分隔)。
有什么技巧可以控制条形图各部分的颜色吗?
最佳,
亚当
可以这样改变颜色样式:
data = google.visualization.arrayToDataTable([
['Category', 'Negative', 'Neutral', 'Positive', { role: 'style' }],
['icon', 10, 800, 5, '#b87333'],
['colour', 5, 5, 5, 'silver'],
['copy', 5, 5, 5, 'gold'],
['navigation', 5, 5, 5, 'color: #e5e4e2']
]);
更新:
问题出现在这一行:
var chart = new google.charts.Bar(document.getElementById('categoryChart'));
您使用 google.charts.Bar
而不是 google.visualization.ColumnChart
工作示例:
google.load('visualization', '1', {
packages: ['corechart', 'bar']
});
google.setOnLoadCallback(drawBarColors);
function drawBarColors() {
var data = google.visualization.arrayToDataTable([
['Category', 'Negative', 'Neutral', 'Positive'],
['icon', 10, 100, 5],
['colour', 5, 5, 5],
['copy', 5, 5, 5],
['navigation', 5, 5, 5]
]);
var options = {
isStacked: true,
width: '100%',
height: 400,
colors: ['red', 'blue', 'green'],
hAxis: {
title: 'Category',
textStyle: {
bold: true,
fontSize: 24
},
titleTextStyle: {
color: 'White'
}
},
vAxis: {
title: 'Responses',
textStyle: {
bold: true,
fontSize: 24
},
titleTextStyle: {
color: 'White'
}
},
};
var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<div id="chart_div"><div>
参考