如何生成一个SVG的Highcharts图形,其中图像位于条形图上并显示在画布标记上?
我需要获取带有条形图图像的图表(我使用模式和脚本Highstocks)并放入标记画布,但当我将SVG发送到标记画布时,条形图中的图像消失了。你能帮我吗?在这里之前,我一直遵循下面的命令:如何生成一个SVG的Highcharts图形,其中图像位于条形图上并显示在画布标记上?,svg,canvas,highcharts,canvg,Svg,Canvas,Highcharts,Canvg,我需要获取带有条形图图像的图表(我使用模式和脚本Highstocks)并放入标记画布,但当我将SVG发送到标记画布时,条形图中的图像消失了。你能帮我吗?在这里之前,我一直遵循下面的命令: 在画布上填充图案 格拉菲科船长 var redrawEnabled=true, ctr=0; ctr1=1; 海图。海图('graf-teste'{ //$('graf teste')。高图({ 图表:{ 活动:{ render:function(){ 如果(已启用重绘){ 重绘启用=错误; var图表=
在画布上填充图案
格拉菲科船长
var redrawEnabled=true,
ctr=0;
ctr1=1;
海图。海图('graf-teste'{
//$('graf teste')。高图({
图表:{
活动:{
render:function(){
如果(已启用重绘){
重绘启用=错误;
var图表=此,
renderer=chart.renderer;
chart.series[0].points.forEach(函数(p){
控制台日志(p);
变量宽度比=p.shapeArgs.width/p.shapeArgs.height,
id='模式-'+p.index+'-'+ctr;
var pattern=renderer.createElement('pattern').add(renderer.defs).attr({
宽度:1,
高度:宽度比,
id:id,
patternContentUnits:“objectBoundingBox”
});
渲染器。图像('https://i.pinimg.com/originals/6c/38/66/6c38667a1977cbcac6f94b92decd7927.png,0,0,1,宽度比)。属性({
}).添加(图案);
p、 更新({
颜色:“url(#“+id+”)”
},假);
});
chart.series[1].points.forEach(函数(q){
控制台日志(q);
变量宽度比=q.shapeArgs.width/q.shapeArgs.height,
id='模式-'+q.index+'-'+ctr1;
var pattern=renderer.createElement('pattern').add(renderer.defs).attr({
宽度:1,
高度:宽度比,
id:id,
patternContentUnits:“objectBoundingBox”
});
渲染器。图像('https://s2.glbimg.com/GFHUa5KeFPDTmwtAVjWl1A7oqTQ=/695x0/s.glbimg.com/po/tt2/f/original/2014/07/14/imagem0.jpg,0,0,1,宽度比)。属性({
}).添加(图案);
q、 更新({
颜色:“url(#“+id+”)”
},假);
});
ctr++;
ctr1++;
chart.redraw();
重绘启用=真;
}
}
}
},
标题:{
文字:“Gráfico Teste”
},
出口:{
已启用:false
},
xAxis:{
类别:['']
},
亚克斯:{
分:0,,
标题:{
文本:“”
}
},
图例:{
已启用:false
},
打印选项:{
系列:{
堆叠:“百分比”,
数据标签:{
启用:对,
格式:“{point.percentage:.0f}%”,
//点百分比:.1f
颜色:(Highcharts.theme&&Highcharts.theme.dataLabelsColor)| |“白色”
}
}
},
系列:[{
类型:'bar',
名称:'意甲',
enableMouseTracking:false,
//边框宽度:1,
//边框颜色:'#000000',
数据:[250]
}, {
类型:'bar',
名称:'意甲2',
enableMouseTracking:false,
//边框宽度:1,
//边框颜色:'#000000',
数据:[100]
}],
学分:{
已启用:false
}
});
$(“#btn_capt”)。在('点击',函数(e){
var svg=$('#graf teste').highcharts().getSVG();
canvg(document.getElementById('graf'),svg);
var img=graf.toDataURL(“image/png”);//img是数据:image/png;base64
img=img.replace('data:image/png;base64','');
});
备注:由于页面中还有其他图表,所以完全有必要使用highstock。请看此演示: 我为图表创建了一个新的div,并通过以下方法在其中呈现SVG:
$("#btn_capt").on('click', function(e) {
var svg = chart.getSVG();
$('#containerContainer').prepend(svg);
});
将图像转换为数据URLsRobert Longson,我怎么做?你能帮我吗?谢谢Sebas
$("#btn_capt").on('click', function(e) {
var svg = chart.getSVG();
$('#containerContainer').prepend(svg);
});