2016-04-24 4 views
0

Ich baue ein einfaches Balkendiagramm mit d3.js und es funktioniert gut. Wenn ich jedoch versuche, auf jedem Balken Texte anzuzeigen, passiert nichts. Die Konsole gibt keinen Fehler zurück, so dass ich das Problem nicht verstehen kann. Mein Code ist verfügbar here, ich habe versucht, einfachen Text wie "Hallo" anzuzeigen, aber immer noch nichts auftaucht.d3.js Balkendiagramm: .text erscheint nicht

+0

Wo soll der Text erscheinen und welchen Wert soll er für einen bestimmten Balken haben? –

+0

Ich möchte am Ende jedes Balkens den Wert des vakanten (Attributs der Variable freqData) anzeigen. – cecelia

+0

Haben Sie versucht, dieses Tutorial durchzuarbeiten: http://alignedleft.com/tutorials/d3/making-a-bar-chart? Mir ist klar, dass das Tutorial eher ein vertikales als ein horizontales Diagramm hat, aber ich hoffe es ist immer noch nützlich. Sie versuchen, die Textbeschriftungen über ein selectAll auf die 'rect's und nicht auf ein selectAll auf den' text's anzuwenden. –

Antwort

0

Problem:

Anfügen Texte zu einem rect Elemente in SVG.

Lösung:

Fügen Sie die Texte zum SVG oder zu einer Gruppe.

Anleitung:

Sie Ihre Texte auf die Rechtecke angehängt wird. Nichts wird in der Konsole als Fehler angezeigt, da kein Fehler angezeigt wird, aber die Texte werden nicht angezeigt.

Sie haben eine Variable für die Texte zu erstellen:

var texts = svg.selectAll(".mytexts") 
          .data(data) 
          .enter() 
          .append("text"); 

Und dann die Attribute setzen:

texts.attr("class", "value") 
       .attr("x", function(d) { return widthScale(d.vacant); }) 
       .attr("y", heightScale.rangeBand()/2) 
       .attr("dx", -3) 
       .attr("dy", ".35em") 
       .attr("text-anchor", "end") 
       .text(function(d) { return format(d.vacant); }); 

Vergessen Sie nicht, entsprechend der CSS zu ändern.

+0

Sehr schöne Erklärung !!!! Tausend Dank! Alles funktioniert jetzt, ich habe wirklich nicht verstanden, wie man die Texte mit den Variablen und SVGs verbindet. – cecelia

+0

Keine Sorgen! Um die Texte mit den Rechtecken zu verknüpfen, ist es am besten, Gruppen zu erstellen ( Elemente in SVG). –