0
私はd3 jsを初めて使用しています。私は力のシミュレーションの助けを借りてバブルチャートを作成しようとしていました。 しかし、私は泡を作りましたが、泡にlablesを表示することはできません。以下は私のコードですが、このコードの提案は私にとって大きな助けになります。バブルチャートのノードにラベルを付ける
事前にThankss
<html>
<head>
<script src="https://d3js.org/d3.v4.min.js"></script>
</head>
<body>
<script>
var width = 1500;
var height = 1000;
var color = d3.scaleOrdinal(d3.schemeCategory10);
var canvas = d3.select("body")
.append("svg")
.attr("width",width)
.attr("height",height).
append("g")
.attr("transform","translate(0,0)");
var radiusScale = d3.scaleSqrt().domain([0,130000]).range([10,100])
var simulation = d3.forceSimulation()
.force("x",d3.forceX(width/2).strength(0.05))
.force("y",d3.forceY(height/2).strength(0.05))
.force("collide",d3.forceCollide(function(d){ return radiusScale(d.value)+1;}))
d3.queue().
defer(d3.csv,"historylogs.csv").await(ready);
function ready(error,datapoints){
console.log(datapoints);
datapoints = datapoints.map(function(d){ d.value = +d["size_kw"]; return d; });
datapoints = d3.nest()
.key(function(d) { return d.install_type;})
.rollup(function(d) {
return d3.sum(d, function(g) {return g.value; });
}).entries(datapoints);
console.log(datapoints);
var nodes = canvas.selectAll("g")
.data(datapoints)
.enter()
.append("g");
var circles= nodes
.append("circle")
.attr("r",function(d){ return radiusScale(d.value);})
.attr("fill",function(d) { return color(d.value);})
.attr("opacity",0.5)
//.attr("dx", function(d){return d.key})
//.text(function(d){return d.key})
//.on('mouseover',function(d){})
var text= nodes
.append("text")
.attr("text-anchor", "middle")
.text(function(d){ return d.key; })
.style({
"fill":"black",
"font-family":"Helvetica Neue, Helvetica, Arial, san-serif",
"font-size": "12px"
});
simulation.nodes(datapoints).on('tick',ticked);
function ticked(){
circles.attr("cx",function(d){ return d.x;})
.attr("cy",function(d){ return d.y;});
//text.attr("x",function(d){ return d.x;})
//.attr("y",function(d){ return d.y;});
}
}
`
私たちがバブルの上にマウスポインタを置くたびに、各ノードに関連するデータを表示する方法を教えてください。 – Harshita
申し訳ありません。私はあなたを取得しませんでした。各ノードにはすでにラベル(キー値)があります。マウスオーバーで表示される予定のデータは何でしょうか?そしてどうやって?ツールチップとして? – Gilsha
はい、ツールチップです。 – Harshita