Динамически меняющиеся субтитры при различных развертках в древовидной карте в старших диаграммах? - PullRequest
0 голосов
/ 10 мая 2018

У меня есть 5 уровней детализации в моей древовидной карте, и я хочу менять субтитры при каждой детализации.Я сталкивался с этим кодом:

chart.setTitle ({text: drilldownTitle + e.point.name});

, который хорошо работает для столбцовых диаграмм, но я в древовидной карте сохранил данные в формате массива, и нет идентификатора детализации, как я могу добиться этой функциональности для древовидной карты.

     $('#container').highcharts({
            series: [{
                type: "treemap",
                layoutAlgorithm: 'squarified'
}],

 subtitle: {
            text: 'Click points to drill down </a>.'
        },
        title: {
            text: 'TreeMap Sample'
        }
}],

1 Ответ

0 голосов
/ 14 мая 2018

К сожалению, Highcharts не предлагает такие события, как drillupToNode & drilldownToNode, которые облегчили бы манипулирование названием диаграммы.

Workaroud:

Я добавляю логику обработки заголовков к функции drillToNode и перезаписываю ее:

H.seriesTypes.treemap.prototype.drillToNode = function(id, redraw) {
  var series = this,
    chart = series.chart,
    nodeMap = series.nodeMap,
    node = nodeMap[id],
    title;
  series.idPreviousRoot = series.rootNode;
  series.rootNode = id;

  if (id === '') {
    series.drillUpButton = series.drillUpButton.destroy();
    title = chart.userOptions.title.text;
  } else {
    series.showDrillUpButton((node && node.name || id));
    title = node.name;
  }

  chart.setTitle({
    text: title
  }, null, false);

  this.isDirty = true; // Force redraw
  if (pick(redraw, true)) {
    this.chart.redraw();
  }
}

Оригинальную функцию можно найти по этой ссылке: https://github.com/highcharts/highcharts/blob/master/js/modules/treemap.src.js

point.events.click больше не требуется при использовании этого кода, но для диаграммы необходимо изначально задать свойство chart.title.text.

Демонстрационная версия: https://jsfiddle.net/BlackLabel/7toez0n5/

...