【问题标题】:Highcharts exporting SVG with data pre-selectedHighcharts 导出带有预选数据的 SVG
【发布时间】:2020-08-02 02:14:33
【问题描述】:

我正在尝试将 Highcharts sankey 图导出到 SVG,并且我希望有几个不同的矢量文件,图中突出显示的不同部分(单击),所以我可以在它们之间以预先录制的方式淡入淡出介绍。我想不出任何方法可以让 Export 模块导出一个通过单击突出显示的 SVG——它只导出“普通”图形。有人可以帮忙吗?

我附上了我所追求的截图,因为我不知道如何让它们导出为矢量文件。无论如何,数据总是像第一张图一样导出:

但我也希望将其导出为以下两个图表,并选择数据的各个部分:

【问题讨论】:

    标签: javascript svg charts highcharts vector-graphics


    【解决方案1】:

    这是我的想法,如何使用 exporting.menuItemDefinition 功能来实现它。

    • 为每个节点创建全局标志,如customSVGExport1
    • 创建具有将标志更改为 true 并触发 SVG 下载(并再次呈现图表)的功能的自定义导出菜单按钮,

      onclick: function() {
        customSVGExport1 = true;
        this.exportChart({
          type: 'image/svg+xml'
        });
      },
      
      • 下面的函数会被触发:

         chart: {
           events: {
             render() {
               let chart = this;
        
               if (customSVGExport1) {
                // Trigger point hover event
                chart.series[0].nodes[0].onMouseOver();
                // Hide tooltip for export
                chart.tooltip.label.hide();
                // Set flag back to false;
                customSVGExport = false;
              } else if (customSVGExport2) {
                 chart.series[0].nodes[1].onMouseOver();
                 chart.tooltip.label.hide();
                 customSVGExport = false;
              }
            }
          }
        },
        

    演示:https://jsfiddle.net/BlackLabel/x67jwsmo/

    API:https://api.highcharts.com/highcharts/exporting.menuItemDefinitions

    API:https://api.highcharts.com/highcharts/chart.events.render

    【讨论】:

    • 太棒了!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多