Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何生成一个SVG的Highcharts图形,其中图像位于条形图上并显示在画布标记上?_Svg_Canvas_Highcharts_Canvg - Fatal编程技术网

如何生成一个SVG的Highcharts图形,其中图像位于条形图上并显示在画布标记上?

如何生成一个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图表=

我需要获取带有条形图图像的图表(我使用模式和脚本Highstocks)并放入标记画布,但当我将SVG发送到标记画布时,条形图中的图像消失了。你能帮我吗?在这里之前,我一直遵循下面的命令:


在画布上填充图案

格拉菲科船长 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);
});