我正在執行 Ajax 呼叫以從 API 獲取資料并從回傳的資料物件中繪制矩形。
如何在矩形中包含文本(物件 ID)?
let height = window.innerHeight;
var canvas = d3.select("body")
.append("svg")
.attr("width", "100%")
.attr("height", height)
$(document).ready(function(){
getData();
});
function getData() {
$.ajax({
url: "http://api.ntjp.se/coop/api/v1/connectionPoints",
success: function(result){
drawRectangles(result);
}
});
}
function drawRectangles(data) {
var rectangles = canvas.selectAll("rect")
.data(data)
.enter()
.append("rect")
.attr("width", 80)
.attr("height", 50)
.style("stroke-width", "1")
.style("fill", "none")
.style("stroke", "black")
.attr("y", function(d, i) { return i * 100});
}
uj5u.com熱心網友回復:
在 SVG 中,形狀類似于rect或text不能包含其他形狀。常規的方法是采用特殊元素g(組),它本身沒有形狀,但可以容納多個形狀元素。
然后,您可以為每個元素繪制rect和,并將元素及其內容準確放置在您想要的位置。textgg
let height = window.innerHeight;
var canvas = d3.select("body")
.append("svg")
.attr("width", "100%")
.attr("height", height);
var data = [
{
"id": 4,
"platform": "NTJP",
"environment": "PROD",
"snapshotTime": "2021-12-12T00:05:06 0100"
},
{
"id": 5,
"platform": "SLL",
"environment": "PROD",
"snapshotTime": "2021-12-12T00:00:04 0100"
},
{
"id": 6,
"platform": "NTJP",
"environment": "QA",
"snapshotTime": "2021-12-12T00:05:05 0100"
},
{
"id": 7,
"platform": "SLL",
"environment": "QA",
"snapshotTime": "2021-12-12T00:00:05 0100"
},
{
"id": 8,
"platform": "NTJP",
"environment": "TEST",
"snapshotTime": "2021-12-12T00:05:06 0100"
}
];
var nodes = canvas.selectAll(".node")
.data(data)
.enter()
.append("g")
.attr("class", "node")
.attr("transform", function(_, i) {
return `translate(0, ${i * 100})`;
})
nodes
.append("rect")
.attr("width", 80)
.attr("height", 50)
.style("stroke-width", "1")
.style("fill", "none")
.style("stroke", "black");
nodes
.append("text")
// To make the `text` node have access to the data related to the `g` node
.datum(function(d) { return d; })
.attr("y", 25)
.attr("x", 40)
.attr("dy", "0.5em")
.attr("text-anchor", "middle")
.text(function(d) { return d.platform; });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/6.2.0/d3.min.js"></script>
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/382611.html
標籤:javascript d3.js
上一篇:從IntelliJ更改串列中,我想查看沒有樹結構的更新檔案串列
下一篇:僅限客戶端的Nuxt3D3插件
