从导出到 csv 中排除特定系列

Exclude a specific series from exporting to csv

我正在使用 HighCharts 库在仪表图中绘制一些数据。我的图表如下图所示。

为了实现此图,我使用系列选项同时使用实心仪表和仪表(半圆形实心仪表和刻度盘仪表。)

...
series: [
  {
    name: 'solidgauge',
    type: 'solidgauge',
    data: [data.value],
    ...
  },
  {
    name: 'gauge',
    type: 'gauge',
    data: [data.value],
    ...
  },
]
...

显然这两个系列的数据是相同的,所以当我将图表导出到 csv 文件时,库创建了两个具有相同数据的列,我想更改此行为并仅导出系列中的一个,但是经过很多次搜索,我在 highcharts 中找不到任何选项来排除特定系列。

我该怎么做? (我对导出定制不熟悉,使用少量代码示例回答对开始创建我自己的定制非常有用。)

您可以包装 getCSV 方法并在继续之前隐藏系列:

var H = Highcharts;

H.wrap(H.Chart.prototype, 'getCSV', function(proceed) {
    var result;

    this.series[1].hide();
    result = proceed.apply(this, Array.prototype.slice.call(arguments, 1));
    this.series[1].show();

    return result;
});

现场演示:https://jsfiddle.net/BlackLabel/109a7vek/

此外,您可以在 exportData 事件中编辑生成的数据:

H.addEvent(H.Chart, 'exportData', function(e){
  e.dataRows.forEach(function(el){
    el.splice(2, 1);
  });
});

现场演示:https://jsfiddle.net/BlackLabel/du7nz2hy/

文档:https://www.highcharts.com/docs/extending-highcharts/extending-highcharts