我正在探索 D3.js。我主要使用他们的教程来获得我所拥有的。但是我做了一些调整。我正在做的是计算特定表中活动和非活动项目的数量。然后它会显示一个包含这些值的图表。大多数情况下都可以正常工作。我有两个问题:
- 删除项目时,它不会通过我的 AJAX 调用自动更新。仅在添加项目时更新。但对于这篇文章,我并不担心这一点。
- 我的主要问题:重复值不被视为单独的数字。相反,它看到 [10,10] 并将其作为图表中的单个条输出为 10(而不是 2 个条)。
查看 D3 文档,似乎问题出在 .data 上。文档提到它连接数据。
$(document).on("DOMSubtreeModified DOMNodeRemoved", ".newsfeed", function() {
var columns = ['created','deleted'];
var data = [numN, numD];
var y = d3.scale.linear()
.domain([0, d3.max(data)])
.range([0, 420]);
var x = d3.scale.ordinal()
.domain(columns)
.rangeBands([0, 120]);
chart.selectAll("rect")
.data(data)
//.enter().append("rect")
.attr("x", x)
.attr("height", y)
.attr("width", x.rangeBand())
.attr("rx", 10)
.attr("ry", 10);
chart.selectAll("text")
.data(data)
//.enter().append("text")
.attr("y", y)
.attr("x", function(d) {
return x(d) + x.rangeBand() / 2;
}) //offset
.attr("dy", -10) // padding-right
.attr("dx", ".35em") // vertical-align: middle
.attr("text-anchor", "end") // text-align: right
.text(String);
});
如何使每个值显示?如果我传入两个不同的值,图表将按应有的方式显示。