Highcharts экспорт SVG с предварительно выбранными данными - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь экспортировать диаграмму Sankey Highcharts в SVG, и мне бы хотелось, чтобы несколько разных векторных файлов были выделены (выделены) различными частями диаграммы, чтобы я мог плавно переходить между ними в предварительно записанном виде. презентация. Я не могу найти способ заставить модуль экспорта экспортировать SVG, который был выделен, нажав на него - он экспортирует только «простой» график. Кто-нибудь может помочь?

Я приложил скриншоты того, что мне нужно, так как я не могу понять, как заставить их экспортировать в виде векторных файлов. Независимо от того, что данные всегда экспортируются в виде первой диаграммы: Plain graph

Но я также хотел бы, чтобы они экспортировались в виде следующих двух диаграмм с различными частями выбранных данных: One point selected Another point selected

1 Ответ

1 голос
/ 20 апреля 2020

Вот моя идея, как этого добиться с помощью функции 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

...