J'essaye de créer un wordcloud avec la disposition du pack D3 avec une disposition horizontale.Mise en page du pack Cercle D3 avec disposition horizontale
Au lieu de limiter la largeur, je limite la hauteur.
La disposition du pack dispose automatiquement les cercles avec le plus grand au centre et les autres autour de lui. Si la hauteur est limitée, au lieu d'étendre horizontalement la disposition des cercles, cela réduit la taille de chaque cercle.
Comment puis-je empêcher la mise en page de redimensionner les cercles et commencer à les ajouter sur les côtés s'il n'y a plus d'espace autour du plus grand.
Je veux quelque chose comme ceci: http://imgur.com/7MDnKHF
Mais je suis seulement parvenir: http://jsfiddle.net/v9xjra6c/
Ceci est mon code actuel:
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();
Merci!
Vous devez modifier la disposition pour cela; l'implémentation actuelle ne permet pas de contrôler cela. –