我在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();
}
}
}
如何在导出文件中获取格式化数据。预先感谢您的帮助!
答案 0 :(得分:1)
默认情况下,Highcharts会导出每个点的x
和y
值。使用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));
演示: