答案 0 :(得分:5)
没有标准configuration options来更改列的形状
但您可以在图表的'ready'
事件触发时直接修改svg
但是,在任何其他事件
上,图表将恢复原始形状因此需要在事件被解雇时进行修改
- > 'ready'
,'select'
,'onmouseover'
,'onmouseout'
要更改rect
元素的边框半径,请使用属性rx
和ry
确保我们拥有正确的rect
元素,
自定义colors
已提供给图表
然后检查fill
属性,以查看它是否存在于colors
rect
个fill
属性'none'
的元素也包括在内,
这将是用于突出显示列rect
'onmouseover'
以及rect
属性为stroke
的{{1}}元素,
用于标记所选列
另外一点,svg似乎将任何'#ffffff'
更改为小写,
所以在数组中使用小写colors
请参阅以下工作代码段...
colors

google.charts.load('current', {
callback: function () {
var data = google.visualization.arrayToDataTable([
['Month', '2015', '2016'],
['Jan', 10, 15],
['Feb', 12, 18],
['Mar', 14, 21],
['Apr', 16, 24]
]);
var container = document.getElementById('chart_div');
var chart = new google.visualization.ColumnChart(container);
var colors = ['#cd6155', '#5499c7'];
google.visualization.events.addListener(chart, 'ready', changeBorderRadius);
google.visualization.events.addListener(chart, 'select', changeBorderRadius);
google.visualization.events.addListener(chart, 'onmouseover', changeBorderRadius);
google.visualization.events.addListener(chart, 'onmouseout', changeBorderRadius);
function changeBorderRadius() {
chartColumns = container.getElementsByTagName('rect');
Array.prototype.forEach.call(chartColumns, function(column) {
if ((colors.indexOf(column.getAttribute('fill')) > -1) ||
(column.getAttribute('fill') === 'none') ||
(column.getAttribute('stroke') === '#ffffff')) {
column.setAttribute('rx', 20);
column.setAttribute('ry', 20);
}
});
}
chart.draw(data, {
colors: colors
});
},
packages: ['corechart']
});