Highcharts xAxis格式化程序导出到CSV

时间:2019-07-02 21:00:45

标签: highcharts

我在xAxis中具有格式化程序功能。当我将数据导出到csv时,它将生成0,1,2,而不是自定义xAxis格式的数据。

我正在使用highcharts v7.1.2。

 xAxis: {
                title: {
                    text: 'Year'
                },
                labels: {
                    formatter: function () {
                        var months = ["Jan.", "Feb.", "Mar.", "Apr.", "May", "Jun.",
                            "Jul.", "Aug.", "Sep.", "Oct.", "Nov.", "Dec."];

                        var day = this.value + 1;

                        var date= DateFromDay(2019, day);

                        return months[date.getMonth()] + ' ' + date.getDate();
                    }
                }
            }

如何在导出文件中获取格式化数据。预先感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

默认情况下,Highcharts会导出每个点的xy值。使用xAxis.labels.formatter回调,可以修改轴标签,但点值相同。

可以通过包装Highcharts.Chart.prototype.getDataRows方法并使用要导出的行修改数组来解决此问题。查看下面发布的演示和代码:

代码:

function formatXAxisLabels (value) {
    return value * 10 + "s";
}

(function(H) {
  H.wrap(H.Chart.prototype, 'getDataRows', function(proceed, multiLevelHeaders) {
    var rows = proceed.call(this, multiLevelHeaders);

    rows = rows.map(row => {
      if (H.defined(row.x)) {
        row[0] = formatXAxisLabels(row.x);
      }
      return row;
    });

    return rows;
  });
}(Highcharts));

演示: