不能导出在回调函数加入highcharts渲染形状/ highstock(Can not expor

2019-09-02 18:12发布

我要动态地添加一些基本形状像文本和图像到highcharts / highstock。

请参阅此

$(function () {
    var chart = new Highcharts.Chart({

        chart: {
            renderTo: 'container',
            spacingBottom: 50
        },

        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
        $("#add").click(function(){
    chart.renderer.image('http://highcharts.com/demo/gfx/sun.png', 100, 100, 30, 30)
        .add();   
        });
});
});

点击按钮后“添加图片”,有将被添加到图的图像。 不幸的是,那些动态添加元素不能被导出到的图像。

是否有任何可能的解决方案来解决这一问题?

Answer 1:

您可以使用chart.exportChart()函数来实现这一目标: http://jsfiddle.net/B6s7V/38/

同样的解决方案在这里 。

$("#export").click(function () {
    chart.exportChart(null, {
        chart: {
            events: {
                load: function () {
                    this.renderer.image('http://highcharts.com/demo/gfx/sun.png', 100, 100, 30, 30).add();
                }
            }
        }
    });
});


Answer 2:

当您导出一个图表,该图表SVG从原来的再生.Chart电话。 如果您要添加的东西图表已制定后,做的charts:events:load回调。

    chart: {
        renderTo: 'container',
        spacingBottom: 50,
        events: {
            load: function(){
                this.renderer.image('http://highcharts.com/demo/gfx/sun.png', 100, 100, 30, 30).add();
            }
        }
    }, 

见更新小提琴这里 。



文章来源: Can not exporting renderer shapes added in callback function in highcharts / highstock