如何在每张图下显示Amcharts图形中使用的DataProvider的数据?

How to display the data of DataProvider used in Amcharts graphics under each graph?

我用 Amcharts 做了一些图表。我想在我的 HTML 页面中的每个图表下显示它的 table 数据(dataProvider)。我到处寻找解决方案,但徒劳无功。这里是我要展示的amcharts网站在线数据table

在 AmCharts 的网站 here 上有一个关于如何自动生成 table 的示例。这是示例中的代码,您需要在调用 makeChart 之前添加此代码:

/**
 * A plugin to automatically creata a data table for the chart
 * The plugin will check if the chart config has the following setting set: "dataTableId"
 */
AmCharts.addInitHandler(function(chart) {

  // check if export to table is enabled
  if (chart.dataTableId === undefined)
    return;

  // get chart data
  var data = chart.dataProvider;

  // create a table
  var holder = document.getElementById(chart.dataTableId);
  var table = document.createElement("table");
  holder.appendChild(table);
  var tr, td;

  // add first row
  for (var x = 0; x < chart.dataProvider.length; x++) {
    // first row
    if (x == 0) {
      tr = document.createElement("tr");
      table.appendChild(tr);
      td = document.createElement("th");
      td.innerHTML = chart.categoryAxis.title;
      tr.appendChild(td);
      for (var i = 0; i < chart.graphs.length; i++) {
        td = document.createElement('th');
        td.innerHTML = chart.graphs[i].title;
        tr.appendChild(td);
      }
    }

    // add rows
    tr = document.createElement("tr");
    table.appendChild(tr);
    td = document.createElement("td");
    td.className = "row-title";
    td.innerHTML = chart.dataProvider[x][chart.categoryField];
    tr.appendChild(td);
    for (var i = 0; i < chart.graphs.length; i++) {
      td = document.createElement('td');
      td.innerHTML = chart.dataProvider[x][chart.graphs[i].valueField];
      tr.appendChild(td);
    }
  }

}, ["serial"]);

仅供参考,此代码在您的屏幕截图中的实时编辑器中不起作用,以防您使用它来创建图表。您必须导出代码并将其插入。