散点图CSV/XLS导出中缺少Highcharts信息



将散点图/气泡图数据导出为CSV或XLS时,缺少关键信息,请参见例如:http://jsfiddle.net/11fum86u/

这是数据(摘录):

series: [{
data: [
{ x: 95, y: 95, z: 13.8, name: 'BE', country: 'Belgium' },

轴标题在工具提示中(但可能需要在其他地方定义):

tooltip: {
pointFormat: '<tr><th colspan="2"><h3>{point.country}</h3></th></tr>' +
'<tr><th>Fat intake:</th><td>{point.x}g</td></tr>' +
'<tr><th>Sugar intake:</th><td>{point.y}g</td></tr>' +
'<tr><th>Obesity (adults):</th><td>{point.z}%</td></tr>',

默认导出中缺少的是(i)y和z轴的标签,以及(ii)气泡的名称(在本例中,为国家代码/名称)

我想知道如何将这些信息添加到导出中。

实际上气泡图中没有z轴。这相当令人困惑,因为所有点都具有z属性。此属性用于计算气泡大小,因此不需要额外的轴,因为所有内容都在二维中。zAxis用于三维图表。

请参阅现场工作示例:http://jsfiddle.net/kkulig/udtr0emL/

您可以通过columnHeaderFormatter处理第一行标签(http://api.highcharts.com/highcharts/exporting.csv.columnHeaderFormatter):

exporting: {
csv: {
columnHeaderFormatter: function(item, key, keyLength) {
if (item.axisTitle) {
return item.axisTitle.textStr; // x axis label
} else if (key === 'y') {
return item.yAxis.axisTitle.textStr; // y axis label
} else if (key === 'z') {
return 'Obesity (adults)'; // z axis label
}
}
}
}

要添加另一列(国家),请在这三个核心功能中添加以下代码:

1.Highcharts.Chart.protype.getDataRows

// add original point reference
rows[key].point = point;

2.Highcharts.Chart.protype.getCSV

// Add point name and header
csv += itemDelimiter;
var point = row['point'];
if (point) {
csv += point.name
} else {
csv += "Country"
}

3.Highcharts.Chart.protype.getTable(适用于XLS)

var point = row['point'],
val;
if (point) {
val = point.name;
} else {
val = "Country";
}
html += '<' + tag + ' class="text">' +
(val === undefined ? '' : val) + '</' + tag + '>';

export-data.src.js中的所有功能都在此目录中可用:https://github.com/highcharts/highcharts/tree/b4b4221b19a3a50d9ed613b6f50b12f0afcc7d06/js/modules

最新更新