4
我用這個http://bl.ocks.org/mbostock/4063269來創建圓,但我需要創建矩形而不是圓,所有這些矩形需要打包在一個更大的矩形內。請幫忙。在d3js中創建矩形而不是氣泡
我用這個http://bl.ocks.org/mbostock/4063269來創建圓,但我需要創建矩形而不是圓,所有這些矩形需要打包在一個更大的矩形內。請幫忙。在d3js中創建矩形而不是氣泡
這是如何製作矩形而不是圓形。
node.append("rect")
.attr("width", function(d) { return d.r*2; })//width is the diameter
.attr("x", function(d) { return d.r*-1; })
.attr("y", function(d) { return d.r*-1; })
.attr("height", function(d) { return d.r*2; })//height is the diameter
.style("fill", function(d) { return color(d.packageName); });
我們創造出包個個
//get all the data
var data = d3.selectAll("g")[0].map(function(d) {
return d3.select(d).data()[0]
})
//get the min x max x min y max y
var xmin = d3.min(data, function(d){return d.x-d.r})
var xmax = d3.max(data, function(d){return d.x+d.r})
var ymin = d3.min(data, function(d){return d.y-d.r})
var ymax = d3.max(data, function(d){return d.y+d.r})
//make a rectangle to make it over other rectangles.
svg.insert("rect" ,":first-child")
.attr("x", xmin)
.attr("y", ymin)
.attr("height", ymax-ymin)
.attr("width", xmax-xmin)
.style("opacity", 0.3)
.style("fill","blue");
的工作示例here
感謝您的矩形。所有這些小矩形都需要被包圍在一個大的矩形中,在你的例子中,所有的小矩形都是重疊的,而不是等距的。 – user123
對不起。粘貼上面的代碼將它們包裝在一個大矩形中。它工作正常。 – user123
矩形之間的間距可以像這樣改變填充varchar = d3.layout.pack() .sort(null) .size([diameter,diameter]) .padding(25.5);'此處的工作代碼http://plnkr.co/edit/Ku250M0PeRutyQU4VJxn?p=preview – Cyril