Sto provando a creare un wordcloud con il layout del pacchetto D3 con una disposizione orizzontale.D3 Circle Pack Layout con disposizione orizzontale
Invece di limitare la larghezza, sto limitando l'altezza.
Il layout del pacchetto dispone automaticamente dei cerchi con il più grande al centro e gli altri intorno a lui. Se l'altezza è limitata, invece di espandere la disposizione dei cerchi orizzontalmente, riduce le dimensioni di ogni cerchio.
Come posso impedire al layout di ridimensionare i cerchi e iniziare ad aggiungerli ai lati se non c'è più spazio intorno a quello più grande.
voglio qualcosa di simile: http://imgur.com/7MDnKHF
Ma io sono solo il raggiungimento di questo: http://jsfiddle.net/v9xjra6c/
Questo è il mio codice corrente:
var width,
height,
diameter,
padding,
format,
pack,
svg,
node;
var initSizes = function() {
var dimensions = { width: 900, height: 288 };
width = dimensions.width;
height = dimensions.height;
diameter = Math.min(width, height);
padding = 12;
format = d3.format(',d');
};
var initLayout = function() {
pack = d3.layout.pack()
.sort(null)
.size([width, height])
.padding(padding);
};
var createSVG = function() {
svg = d3.select('.chart-container').append('svg')
.attr('width', width)
.attr('height', height)
.attr('class', 'bubble');
};
var createBubbles = function() {
var dataset = pack.nodes(DATA);
node = svg.selectAll('.node')
.data(dataset.filter(function(d) { return !d.children; }))
.enter().append('g')
.attr('class', 'node')
.attr('transform', function(d) { return 'translate(' + d.x + ',' + d.y + ')'; });
node.append('title')
.text(function(d) { return d.name + ': ' + format(d.value); });
node.append('circle')
.attr('r', function(d) { return d.r; });
node.append('text')
.attr('dy', '.3em')
.style('text-anchor', 'middle')
.text(function(d) { return d.name.substring(0, d.r/3); });
};
initSizes();
initLayout();
createSVG();
createBubbles();
Grazie!
È necessario modificare il layout per questo; l'attuale implementazione non consente di controllarlo. –