我使用 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);
});
最佳答案
您应该创建一个工作 fiddle ,以便我们可以正确测试,但在盲态中,尝试以下操作:
// 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);
});
关于javascript - d3 : Append caption/title to table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47016065/