将散点图/气泡图数据导出为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)气泡的名称(在本例中为国家/地区代码/名称)
我想知道如何将此信息添加到导出中。
答案 0 :(得分:0)
实际上气泡图中没有z
轴。这很令人困惑,因为所有点都有z
属性。此属性用于计算气泡大小,因此不需要额外的轴,因为一切都在2d。 zAxis
用于3d图表。
请参阅此实时工作示例: 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.prototype.getDataRows 强>
// add original point reference
rows[key].point = point;
<强> 2。 Highcharts.Chart.prototype.getCSV 强>
// Add point name and header
csv += itemDelimiter;
var point = row['point'];
if (point) {
csv += point.name
} else {
csv += "Country"
}
第3。 Highcharts.Chart.prototype.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