In che modo D3.js può regolare automaticamente la dimensione dei caratteri per ciascun nodo in base al raggio/diametro individuale?D3.js Ridimensionamento automatico dei caratteri in base al raggio/diametro individuale dei nodi
Io uso uno stile che permette di aumento automatico insize
node.append("text")
.attr("dy", ".3em")
.style("text-anchor", "middle")
.text(function(d) { return d.className.substring(0, d.r/3); })
.style("font-size", "10px") // initial guess
//This is what gives it increased size...
.style("font-size", function(d) { return (2 * d.r - 10)/this.getComputedTextLength() * 10 + "px"; })
; * 10 + "px"; })
Questo effetto rimuove il testo dai nodi più piccoli. Ho anche una funzione di zoom che posso aumentare un punto che in origine copre 12 px per coprire l'intero schermo.
.call(d3.behavior.zoom().scaleExtent([1, 200]).on("zoom", zoom))
C'è un modo per formattare automaticamente nodo-font singolarmente; scrivere in dimensioni appropriate in modo che quando si ingrandisce il carattere del nodo chiamato apparirà proporzionato alla dimensione del nodo rispetto a una singola dimensione carattere adatta a tutti?
Il destro elenca Circles: NOME (SIZE)
Mi piacerebbe un esempi di lavoro da cui imparare. Quindi, alla dimensione dell'immagine, il piccolo punto verde a nord del cerchio guida accanto alla P avrebbe parole nere illeggibili fino a quando non si ingrandisce per vedere cosa è scritto sul cerchio. L'obiettivo è quello di avere un font proporzionato leggibile quando viene ingrandito ..?
Opere eccellente ... C'è una semplice correzione per ottenere spazio prima e dopo la parola o ridurre la dimensione della parola a pochi passi più piccoli? – Understood
È tutto nel modo in cui 'cscale' è determinato - è possibile aggiungere un fattore lì o aggiungere un offset costante a' bbox.width' per uno spazio. –
potrebbe essere questo getBBox() creare un problema su FF !!! –