Ich erstelle ein Balkendiagramm mit d3.js. Oben auf jeder Leiste zeige ich Text an. Wenn der Benutzer über die Leiste schwebt, sollte er den Text anzeigen. Wenn sie sich bewegen, verschwindet der Text. Um das zu tun, muss ich die <text>
und <rect>
Elemente innerhalb eines <g>
Elements gruppieren.Gruppe jedes Rect und Text in D3
Beispiel
<g class="gbar">
<rect x="0" y="50" width="10" height="50" />
<text x="15" y="40">A</text>
</g>
<g class="gbar">
<rect x="11" y="75" width="10" height="25" />
<text x="16" y="65">B</text>
</g>
<g class="gbar">
<rect x="22" y="25" width="10" height="75" />
<text x="27" y="35">C</text>
</g>
Also diese Weise kann ich eine .gbar:hover rect, .gbar:hover text { ... }
CSS-Stil machen die Farbe und die Opazität der beiden <rect>
und <text>
Elemente zu ändern. Wie kann ich für jedes Datenelement die <rect>
und <text>
Elemente in ein <g>
Element mit d3.js setzen?
Dank
EDIT: Um mehr Kontext hinzufügen, das ist, was habe ich bisher ...
var svg = d3.select('.mygraph')
.append('svg')
.attr('height', 100);
svg.selectAll('rect')
.data(dataSet)
.enter()
.append('rect')
.attr('x', calcX)
.attr('y', calcY)
.attr('width', 10)
.attr('height', calcH);
svg.selectAll('text')
.data(dataSet)
.enter()
.append('text')
.text(function (d) {
return d.Text;
})
.attr('x', textX)
.attr('y', textY);
Dieser Code erzeugt:
<svg>
<rect x="0" y="50" width="10" height="50" />
<rect x="11" y="75" width="10" height="25" />
<rect x="22" y="25" width="10" height="75" />
<text x="15" y="40">A</text>
<text x="16" y="65">B</text>
<text x="27" y="35">C</text>
</svg>
Ich bin sehr still neu zu d3.js.
was d3 Code haben Sie bisher? –