【问题标题】:d3: Append caption/title to tabled3:将标题/标题附加到表格
【发布时间】:2017-10-30 13:07:30
【问题描述】:

我使用 d3.js 生成了一个表。但是不知何故,我无法在表格中附加标题或标题。我尝试过追加 .append("text'),但它会位于表格下方。我最近的尝试是 .append('caption'),它也不起作用。 代码如下:

    ====================================================*/

// Get the data
data.forEach(function(d) {
  d.Timestamp = parseDate(d.Timestamp);
  d.Position = +d.Position;
  d.Agency = +d.Agency;
});

function tabulate(data, columns) {
  var table = d3.select(".grid_intent").append("table").append("caption").text("Table");
  thead = table.append("thead"),
    tbody = table.append("tbody");
  // append the header row
  thead.append("tr")
    .selectAll("th")
    .data(columns)
    .enter()
    .append("th")
    .text(function(column) {
      return column;
    });
  // create a row for each object in the data
  var rows = tbody.selectAll("tr").data(data)
    .enter()
    .append("tr");
  // create a cell in each row for each column
  var cells = rows.selectAll("td").data(function(row) {
      return columns.map(function(column) {
        return {
          column: column,
          value: row[column]
        };
      });
    })
    .enter()
    .append("td")
    .attr("style", "font-family: Courier")
    .attr("colspan", "2")
    .html(function(d) {
      return d.value;
    });
  return table;
}

// render the table
var Pos_All_Agen = tabulate(data, ["Agentur", "Position"])
//Sort Table Accoring to Position
Pos_All_Agen.selectAll("tbody tr")
  .sort(function(a, b) {
    return d3.ascending(a.Position, b.Position);
  });

【问题讨论】:

    标签: javascript html css d3.js


    【解决方案1】:

    您应该已经创建了一个工作小提琴,以便我们可以正确测试,但在盲人中,试试这个:

    // Get the data
    data.forEach(function(d) {
      d.Timestamp = parseDate(d.Timestamp);
      d.Position = +d.Position;
      d.Agency = +d.Agency;
    });
    
    function tabulate(data, columns) {
      var table = d3.select(".grid_intent");
      var caption = table.append("caption").text("Table");
      table.append("table");
      thead = table.append("thead"),
        tbody = table.append("tbody");
      // append the header row
      thead.append("tr")
        .selectAll("th")
        .data(columns)
        .enter()
        .append("th")
        .text(function(column) {
          return column;
        });
      // create a row for each object in the data
      var rows = tbody.selectAll("tr").data(data)
        .enter()
        .append("tr");
      // create a cell in each row for each column
      var cells = rows.selectAll("td").data(function(row) {
          return columns.map(function(column) {
            return {
              column: column,
              value: row[column]
            };
          });
        })
        .enter()
        .append("td")
        .attr("style", "font-family: Courier")
        .attr("colspan", "2")
        .html(function(d) {
          return d.value;
        });
      return table;
    }
    
    // render the table
    var Pos_All_Agen = tabulate(data, ["Agentur", "Position"])
    //Sort Table Accoring to Position
    Pos_All_Agen.selectAll("tbody tr")
      .sort(function(a, b) {
        return d3.ascending(a.Position, b.Position);
      });
    

    【讨论】:

    • 对不起,下次我会做一个小提琴!同样不幸的是它没有用:/
    • 请创建一个小提琴。您的代码显然需要存在特定元素('.grid_intent'),您的问题可能来自不同的问题。除非您可以复制您的问题,否则我们无能为力。我相信我的代码确实有效,在表格之前创建了一个 元素及其文本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多