高分图在散点图CSV / XLS导出中缺少信息

时间:2017-10-10 01:54:36

标签: highcharts export-to-excel export-to-csv scatter-plot bubble-chart

将散点图/气泡图数据导出为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)气泡的名称(在本例中为国家/地区代码/名称)

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

1 个答案:

答案 0 :(得分:0)

实际上气泡图中没有z轴。这很令人困惑,因为所有点都有z属性。此属性用于计算气泡大小,因此不需要额外的轴,因为一切都在2d。 zAxis用于3d图表。

请参阅此实时工作示例: http://jsfiddle.net/kkulig/udtr0emL/

您可以通过columnHeaderFormatterhttp://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