2013-07-08 10 views
5

Używam przykładu d3 z http://www.jasondavies.com/wordcloud/#http%3A%2F%2Fen.wikipedia.org%2Fwiki%2F%7Bword%7D=cloud do budowania mojej własnej chmury słów.Chmury słów d3 - zbyt wiele nakładających się wystąpień

Wszystko, co próbuję zrobić, to dodać atrybut koloru dodany do słów na podstawie właściwości obiektów, które oznaczają słowa.

Na przykład są 4 słowa - USA, Indie, Wielka Brytania i Niemcy - używam progów, aby ustawić kolor słów - powiedzmy, że to bardziej przypomina ustawienie koloru na podstawie gęstości zaludnienia.

Nie wpływa to jednak w żaden sposób na rozmiar czcionki - co może oznaczać masę ziemi w danym kraju.

Mój problem polega na tym, że wszystkie słowa nakładają się na siebie nawzajem.

Zastanawiam się, co mógłbym robić źle - patrz ten kod - moja funkcja "rysowania". co mógłbym zrobić źle tutaj?

draw: function(countries) { 
     var cctrplt = {BuOrPuRd: { 
      4: ["#9ebcda","#e32636","#08306b", "#ffbf00"] 
     }}; 
     var fillthr = 
      d3.scale.threshold() 
      .domain([2, 5, 10]) 
      .range(cctrplt.BuOrPuRd[4]); 
     d3.select("#ddTagCloudContentRoot").append("svg") 
      .attr("width", width) 
      .attr("height", height) 
      .append("g") 
      .attr("transform", "translate(300,300)") 
      .selectAll("text") 
      .data(countries) 
      .enter().append("text") 
      .style("font-size", function(d) { return (d.size) + "px"; }) 
      .style("font-family", "Impact") 
      .style("fill", function(k,i) { var ccode = colours_list[k.text]; return fillthr(ccode); }) 
      .attr("text-anchor", "middle") 
      .attr("transform", function(d) { 
       return "translate(" + [d.x, d.y] + ")"; 
      }) 
      .text(function(d) { return d.text; }); 
    } 

Jeśli jest jakiś inny kod, który muszę udostępnić - daj mi znać.

dziękuję.

Odpowiedz

5

Znaleziono rozwiązanie. Nie użyłem wywołania funkcji rotate(), ponieważ chcę, aby tekst był ułożony poziomo. Pomyślałem, że całkowite pominięcie połączenia pomogłoby.

wygląda na to, że tak nie jest. więc dodaję obrót (0) i to wszystko. teraz dostaję ładną chmurę słów.

WSKAZÓWKA: używam obrysu: czarny w stosunku do stylów tekstu, co zapewnia przyjemną prezentację.

+0

O mój Boże, właśnie uratowałeś mi tyle czasu. Miej wszystkie wzloty. –

+0

Użyłem rotate (0), nie pomaga. – dresh

Powiązane problemy