【发布时间】:2016-07-30 14:42:51
【问题描述】:
我正在通过chart.renderer.image() 将基于SVG 的图形添加到我的图表中,如this jsfiddle example 所示:
$(function () {
$('#container').highcharts({
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
series: [{
data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
}]
}, function (chart) { // on complete
chart.renderer.image('https://cloud3squared.com/files/example.svg', 100, 100, 70, 70)
.add();
});
});
在原始 SVG 文件本身中,我可以通过以下方式更改 SVG 中图形的填充颜色:
style="fill:#ffffff;fill-opacity:1"
这会将它从黑色变为白色。但我希望能够在代码中动态设置这种颜色。我尝试了各种方法都没有成功。有什么想法吗?
【问题讨论】:
-
图片不可能。
-
但这并不是真正的图像。它是 SVG,我希望在添加 SVG 时或之后可以动态修改元素。例如,stackoverflow.com/a/13225606/4070848
-
函数名称暗示它是一个图像并且文档确认它是一个图像:api.highcharts.com/highcharts#Renderer
-
您确定通过
image()添加时未保留SVG?它真的转换为位图吗?任何其他将 SVG 添加到图表而不丢失 SVG 并因此能够以编程方式修改元素的方式? -
就外部访问而言,它也可能是一个光栅。方法有很多,但不一定能通过 highcharts 获得。
标签: javascript css svg highcharts