如何导出树形图的内部级别

时间:2018-09-11 12:23:21

标签: javascript highcharts

我有一个树状图,该树状图向下一级,当我向下时,我无法导出该视图:相反,它正在导出顶层...

 Highcharts.chart('container', {                  
            credits: {
                enabled: false
            },              
            series: [{                 
                type: 'treemap',
                layoutAlgorithm: 'squarified',
                allowDrillToNode: true,
                animationLimit: 1000,
                dataLabels: {
                    enabled: false                      
                },
                levelIsConstant: false,
                levels: [{
                    level: 1,
                    dataLabels: {
                        enabled: true
                    },
                    borderWidth: 3
                }],
                data: points
            }],
            subtitle: {
                text: 'Subtitle'
            },
            title: {
                text: "Title"
            }
        });

小提琴示例:>>
http://jsfiddle.net/xpvt214o/773871/

enter image description here

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

发生这种情况的原因是您使用的是旧版本的Highcahrts。如果由于某种原因您不能使用最新版本,则不会丢失所有内容。请在生成图表之前粘贴wrap函数,并在图表配置中创建exporting.chartOptions.chart.events的空对象。然后它将在每次导出过程中以特定ID调用drillToNode函数。

(function(H) {
    H.wrap(H.seriesTypes.treemap.prototype, 'drillToNode', function(proceed, id, redraw) {
    this.chart.options.exporting.chartOptions.chart.events.load = function() {
      this.series[0].drillToNode(id)
    }
    proceed.call(this, Array.prototype.slice.call(arguments, 1))
  })
  H.wrap(H.seriesTypes.treemap.prototype, 'drillUp', function(proceed) {
    this.chart.options.exporting.chartOptions.chart.events.load = function() {
      this.series[0].drillup()
    }
    proceed.call(this, Array.prototype.slice.call(arguments, 1))
  })
})(Highcharts)

实时示例: http://jsfiddle.net/pwtdq8yf/