【发布时间】:2015-04-24 17:40:34
【问题描述】:
我正在尝试基于 json 创建一个矩形。
下面是小提琴 -
window.onload = function () {
var links = [
{ "source": "Initiate", "target": "Dept Approver", "status" : "completed", "type" : "process" },
{ "source": "Dept Approver", "target": "Section Approver", "status" : "completed", "type" : "process" },
{ "source": "Section Approver", "target": "Division Approver", "status" : "completed", "type" : "process" },
{ "source": "Division Approver", "target": "End", "status" : "pending", "type" : "process" }];
var svgContainer = d3.select("#chart").append("svg")
.attr("width", 800)
.attr("height", 800)
.style("background", "#93A1A1");
var rectangles = svgContainer.selectAll("rect")
.data(links)
.enter()
.append("rect");
var x = 50;
var y = 50;
var rectAttributes = rectangles
.attr("x", function (d) {
x = x + 150;
return x;
})
.attr("y", function (d) { return y; })
.attr("height", function (d) { return '100'; })
.attr("width", function (d) { return '100'; })
.style("fill", function(d) {
if (d.status == "completed") {
return "green";
};
});
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<body>
<h2>D3</h2>
<div id="chart"></div>
</body>
下一步是将 json 的“源”属性中的文本覆盖在矩形上。例如,第一个矩形的标签应为“Initiate”,第二个矩形内的标签应为“Dept Approver”,依此类推。
我使用 .text 进行了尝试,但没有成功。有人可以帮我解决这个问题吗?
谢谢
【问题讨论】:
-
我在another question 的矩形中添加了文本,也许会有所帮助?
标签: javascript d3.js