我正在尝试从Google的图表库中更改AnnotationChart的边框/背景。如果我使用标准backgroundColor
选项,则图表无法呈现。对于this discussion,似乎其他图表类型上可用的backgroundColor选项无法在AnnotationChart上直接访问,但可通过未记录的选项获得。但是,当我尝试这个时,图表没有变化。下面是代码和结果图表;任何想法?
chart
选项var chart = new google.visualization.AnnotationChart(document.getElementById('chart_div'));
var options = {
thickness: 1.5,
displayAnnotations: true,
colors: dataColors,
displayZoomButtons: false,
displayExactValues: false,
displayDateBarSeparator: true,
};
chart.draw(data, options);
var chart = new google.visualization.AnnotationChart(document.getElementById('chart_div'));
var options = {
thickness: 1.5,
displayAnnotations: true,
colors: dataColors,
displayZoomButtons: false,
displayExactValues: false,
displayDateBarSeparator: true,
chart: {
backgroundColor: {
fill:'black',
stroke: 'white',
strokeSize: 1
},
chartArea: {
backgroundColor: {
fill: 'blue',
stroke: 'red',
strokeSize: 1
}
}
}
};
chart.draw(data, options);
答案 0 :(得分:1)
可以像这样使用它来设置背景颜色。 Read the documentation here
像这样编辑你的代码
var options = {
displayAnnotations: true,
displayZoomButtons: false,
displayExactValues: false,
displayDateBarSeparator: true,
chart: {
backgroundColor: 'blue',
chartArea: {
backgroundColor: '#FFF000',
},
},
fill: 50,
};
我尝试使用strokeWidth
和stroke
,但我认为它尚未得到支持或我使用不正确。
工作JSFIDDLE
答案 1 :(得分:1)
由于缺少Google图表的自定义选项,我遇到了自己的问题,一种解决方法是在生成SVG后使用Javascript修改SVG,以产生您想要的外观。
我根据Google Charts Reference中的模板注释图表拼凑了一个快速小提琴,但下面是适用的代码行。它并不漂亮(特别是如果您使用交互式图表,因为这需要 MutationObserver 来监控SVG的更改)但是它可以正常工作并且您可以清理它还有更多。
注意:我注意到与谷歌图表的交互(例如缩放和平移)由于某种原因往往在JSFiddle和Codepen等中陷入困境,但在野外使用时它们会更加顺畅!
/* One time recoloring of background after SVG creation - for static charts */
var rects = container.getElementsByTagName("rect")
for(var i=0; i<rects.length; ++i) {
if (rects[i].getAttribute('fill') === '#ffffff') {
rects[i].setAttribute('fill', '#99f');
}
}
/* MutationObserver to monitor any changes to SVG and recolor background - for interactive charts */
var observer = new MutationObserver(function(mutations) {
var rects = container.getElementsByTagName("rect")
for(var i=0; i<rects.length; ++i) {
if (rects[i].getAttribute('fill') === '#ffffff') {
rects[i].setAttribute('fill', '#99f');
}
}
});