Apa vs. non-Apa Author Pubs
http://stackoverflow.com/questions/21231919/circle-packs-as-nodes-of-a-d3-force-layout
by Nivaldo
HTML
<script src="http://d3js.org/d3.v2.js"></script>
JavaScript
var width = 600,
height = 500,
data = [{
value: 500,
pctFull: 0.20,
name: "20%"
}, {
value: 200,
pctFull: 0.20,
name: "20%"
}, {
value: 300,
pctFull: 0.20,
name: "20%"
}, {
value: 1250,
pctFull: 0.75,
name: "75%"
}, {
value: 1600,
pctFull: 0.25,
name: "20%"
}, {
value: 1250,
pctFull: 0.65,
name: "65%"
}, {
value: 1100,
pctFull: 0.05,
name: "5%"
}, {
value: 1050,
pctFull: 0.35,
name: "35%"
}, {
value: 1700,
pctFull: 0.40,
name: "40%"
}, ],
kVals = [],
rVals = [],
hVals = [];
// calculate k for each data object as described: http://bl.ocks.org/3422480
function kCalculation() {
var i,
j,
t0,
t1,
k;
for (i = 0; i < data.length; i += 1) {
k = data[i].pctFull
t1 = data[i].pctFull * 2 * Math.PI;
if (data[i].pctFull > 0 && data[i].pctFull < 1) {
t1 = Math.pow(12 * k * Math.PI, 1 / 3);
for (j = 0; j < 10; j += 1) {
t0 = t1;
t1 = (Math.sin(t0) - t0 * Math.cos(t0) +
2 * k * Math.PI) / (1 - Math.cos(t0));
}
k = (1 - Math.cos(t1/2)) / 2;
}
kVals.push(k)
}
}
// calculate r of each item so that area scales to value
function rCalculation() {
var i, r;
for (i = 0; i < data.length; i += 1) {
rVals.push(Math.sqrt(data[i].value / Math.PI) * 2);
}
}
function drawGraph() {
//create chart
var chart = d3.select('body')
.append('svg')
.attr('width', width)
.attr('height', height);
//create force layout
var force = d3.layout.force()
.nodes(data)
.size([width, height])
.linkDistance(10)
.charge(function (d, i) {
return rVals[i]...