Skip to content

Instantly share code, notes, and snippets.

@GerardoFurtado
Created April 28, 2019 00:48
Show Gist options
  • Save GerardoFurtado/5802f23a0bd1c4a3f94f95eded56bc97 to your computer and use it in GitHub Desktop.
Save GerardoFurtado/5802f23a0bd1c4a3f94f95eded56bc97 to your computer and use it in GitHub Desktop.
bubble one more time
license: mit
female 25.63 White
female 51.38553333 White
male 96.95 AI/AN
female 80.08 White
female 84.6476 White
female 75.60306667 Black
female 90.34 Black
female 47.6674 Black
female 21.17 Black
female 94.28 Black
female 96.04 Black
female 78.04 White
male 94.04 Black
female 97.39 White
male 98.27 Black
male 67.8488 Black
female 85.44 Black
female 86.4688 Black
female 57.0984 Black
female 92.81 Black
female 52.4908 Black
male 90.45 White
female 78.878 White
male 30.76 White
female 60.84 White
male 62.3148 White
female 73.86 White
female 73.4754 Black
female 0.33 Asian
male 38.82702222 White
female 82.54574286 Black
male 69.85969333 Black
male 54.74026667 Other
male 52.5303 Black
female 71.65 Black
female 83.90086667 Black
female 81.3 White
female 60 Black
female 98.04 Other
male 41.4646 Black
female 38.08 Black
female 68.85 Black
female 99.75 Black
male 41.94 Black
female 80.5892 White
female 97.12 Black
male 59.504 White
female 59.21 White
female 76.3388 White
male 68.57 White
female 93.88 NH/OPI
male 94.42 Black
male 58.4852 Black
female 77.8 White
male 87.45633333 White
male 10.59 Asian
female 75.68 White
female 54.82 White
female 68.47 White
female 83.07 Other
male 49.0717 Asian
male 66.78 White
female 74.972 White
female 34.16 White
female 82.77 White
female 61.5114 White
female 97.5 White
female 82.19 White
male 70.2896 White
female 87.88 White
female 30.3678 White
female 99.29 White
female 65.9384 Black
female 73.831 White
male 76.85664 White
female 70.84 AI/AN
male 86.2062 White
female 63.76 Asian
male 12.1 White
female 84.5 White
female 75.68 White
female 92.17 AI/AN
female 67.097 White
female 77.81 White
female 91.66 White
female 97.15 White
male 16.74 Black
male 63.5658 Asian
female 56.03 White
female 92.1 Other
female 65.44 White
female 87.6 White
female 77.92 White
female 50.14 White
female 67.33028571 White
female 35.76 White
female 70.99 White
male 79.2784 White
female 80.4258 White
female 40.95 White
female 99.53 Black
female 14.39 White
female 84.63138 Asian
male 14.88 White
female 67.7566 White
male 88.2719 White
male 75.9724 White
female 41.98 Black
female 53.306 Other
female 67.3156 Black
female 45.37 White
female 75.39 White
female 78.513 White
male 16.74 White
female 30.3 Asian
female 15.3 White
female 95.57 Black
female 73.46 White
female 21.96 White
female 85.31546667 Black
female 75.57 White
male 70.8442 White
female 50.0334 White
male 93.56 White
male 78.69 AI/AN
female 76.81 White
female 65.07533333 Asian
female 89.8198 White
female 87.2576 White
female 71.25 White
female 57.02 White
male 24.58 Black
female 93.29 NH/OPI
male 70.9826 White
male 73.24531111 Black
female 60.46826667 Other
male 92.23 White
female 96.88 White
female 58.06 White
female 94.67 White
female 81.6836 Black
male 70.4425 White
female 92.29 NH/OPI
female 23.82 White
female 44.3654 White
male 65.2824 White
male 68.30045 Black
male 81.6638 White
male 19.38 Black
male 73.54 Black
female 93.29 AI/AN
female 82.48 White
male 36.28327857 Black
female 53.6464 White
male 68.89 AI/AN
female 77.87 White
male 95.51 White
female 6.92 Black
male 99.2 White
male 95.98 AIAN/White
female 71.41144 Black
male 82.54 Black
male 92.99 White
male 78.57 White
female 47.095 White
female 70.4804 Black
female 85.4724 Black
female 87.92 White
female 80.61 White
female 58.23546667 AI/AN
male 90.96 White
male 68.8 Other
male 71.3196 Black/White
male 69.39996667 White
male 63.6594 White
female 74.52 White
male 67.34 White
male 29.15 White
female 79.46 White
female 23.65 White
female 90.4644 Black
male 59.2674 Black
male 91.83 White
female 72.67 Black/White
male 99.43 White
male 70.58183333 White
male 89.9752 White
female 96.71 White
male 41.68 White
male 54.347 White
female 76.72 White
female 92.44 White
male 99.06 Black/White
male 40.69 White
female 72.4754 Asian
male 48.471995 AIAN/White
female 99.21 White
female 49.76 White
male 51.3298 White
female 97.46 White
female 85.43395 Black
male 26.29 White
male 84.85 White
female 99.05 Other
female 75.61 White
female 98.3 White
female 83.08 White
female 48.06 White
female 94.89 White
female 72.87775 White
male 0 White
female 79.82 White
female 71.23 AIAN/White
female 80.61 White
female 58.4842 White
female 55.1236 White
male 79.4732 White
female 69.2144 White
female 41.5 White
female 79.5 White
male 69.31 Black
male 96.87 Black
female 91.95453333 Black
male 88.83 Black
male 57.7478 Black
female 94.83 Black
female 59.77 AIAN/White
female 98.11 White
male 25.66 White
female 83.9162 Black
female 99.34 Black
female 88.5424 Black
female 98.83 White
male 59.36 White
female 3.66 Black
female 83.53 Black
male 68.7006 Black
male 65.5388 Black
female 67.53 White
female 54.0784 White
male 95.46 White
female 23.8 AI/AN
female 72.78409 White
male 64.55393333 White
female 45.87615 White
female 41.8168 White
male 99.96 White
female 44.95 White
female 0 Asian
female 88.67 White
female 81.71 White
female 92.75 White
male 99.67 Black
female 98.08 AI/AN
female 94.94 White
female 96.28 White
male 74.94 White
female 73.553 White
female 93.02 White
female 23.44 White
female 33.28 Black/White
female 93.85 White
female 90.3088 Black/White
female 67.8508 White
female 72.1342 White
male 95.38 White
male 75.7548 Black
male 56.68 White
male 49.0786 AIAN/White
female 96.75 Black
female 76.4426 Asian
female 66.662 Black
male 5.05 White
female 62.19 White
female 53.32 White
male 83.183 AIAN/White
male 65.0922 White
female 84.44 White
female 56.72 White
female 61.2 White
male 13.06 White
male 79.9884 AI/AN
female 5.27 White
female 87.9506 White
female 65.16 White
male 97.37 AI/AN
male 1.2 AI/AN
female 39.62 White
male 50.2604 White
female 84.06 White
male 0.8 White
female 56.9 White
female 77.42 Black
female 71.8 White
female 96.4 White
female 24.37 White
female 85.9 Black/White
female 52.97 Black
female 89.01 White
female 95.6 Other
male 87.2 White
female 78.2534 White
female 83.22 White
female 74.35 AIAN/White
female 99.46 White
female 98.43 Black
male 0.06 Asian
male 90.64 White
male 91.31 White
male 29.37 White
female 67.9992 NH/OPI
female 45.1414 White
male 65.1328 White
male 85.11 White
female 91.91 White
female 98.4 Black
female 42.53 White
female 62.4902 White
female 84.66 White
female 96.68 White
female 71.45 AIAN/White
female 91.91 White
female 87.2802 White
female 15.53 White
female 35.44 AIAN/White
female 70.84 White
male 64.946 Asian
male 99.19 White
male 0.3 White
female 94.57 White
female 11.33 Black
male 69.82 White
female 88.73 White
female 98.29 Other
female 82.401 Black
male 46.27 White
female 80.1 White
male 91.89 White
female 86.38 White
female 69.82043333 Other
female 55.2374 Black
female 23.9 White
female 94.02 White
female 25.72 White
female 92.01 Black/White
female 80.1726 White
male 76.7616 White
male 68.83 AIAN/White
female 56.9558 AIAN/White
female 72.9004 AI/AN
male 82.3908 Black/White
male 39.62993333 White
female 91.66 White
male 54.7664 White
female 76.0046 White
female 79.24701667 White
female 0 White
female 62.6722 White
female 94.97 White
female 97.78 White
male 53.42828333 White
female 16.77 Black
female 94.31 White
female 91 White
female 81.6344 White
male 10.77 White
male 72.2977 White
female 59.1218 White
male 89.96 AIAN/White
female 68.5738 Black
female 88.15 Black
male 77.1292 Black
female 67.3692 Black
male 49.8926 White
male 74.2698 White
female 60 Black
male 89.47215 Black
female 89.33 Black
female 66.6188 Black
male 61.658 Black
female 80.6572 NH/OPI
female 72.8 Black/White
female 93.12 Black
female 83.92 White
female 55.56 Black
female 89.96 White
male 78.34465 White
female 82.046 Black
female 44.35 White
female 38.993 White
male 97.12 Other
male 89.36 Black
female 81.323 White
female 52.22505 Black
male 71.79 Black
male 15.84 White
male 69.87 White
female 75.9826 Other
male 50.7762 White
female 45.85 Other
male 33.4021 Black
male 83.65964 White
female 78.8604 Black
female 70.25 Black
female 90.79 Other
male 84.5168 Black
female 52.77 White
female 96.56 Black
male 54.05 Black
female 83.92 White
female 41.86 White
female 52.0336 Other
female 78.84 AIAN/White
male 59.3524 White
female 91.82 Black
female 80.13 Black
female 38.29 Other
female 87.2 Black
male 3.97 Black
female 11.9 White
female 57.357 White
female 19.13 White
male 90.5 Black
female 47.79 White
female 58.3302 Other
male 66.95 White
female 85.85 Black
male 65.02 Black
female 86.06 White
female 98.11 White
female 78.79165714 White
female 55.3106 White
male 72.3 White
female 83.07 White
female 69.6 White
female 11.44 White
female 92.1 White
female 88.31 NH/OPI
male 1.65 White
female 53.66 Black
female 57.73 White
female 19.06 Asian
female 12.61 Other
female 22.85 White
female 89.42 White
male 50.4982 White
female 66.5974 Black
male 72.32 NH/OPI
female 95.67 White
female 88.7 White
female 93.33 White
female 52.41 White
female 71.9 White
male 11.02 White
male 0.01 White
male 63.58513333 White
female 79.13 White
female 74.3272 White
male 38.4 White
female 91.4822 White
female 97.48 White
female 58.75 White
female 83.02306667 White
female 82.77 Asian
male 32.13 White
male 92.0062 Black
female 47.13 White
female 83.96 White
female 69.88 White
female 97.72 White
female 65.5 White
female 33.4196 White
female 80.39 AIAN/White
female 99.41 White
male 26.67 AI/AN
male 99.05 White
female 39.9 Black
male 74.2534 White
female 60.2964 White
female 6.33 Other
male 8.88 Asian
female 96.21 White
female 55.69 White
female 88.25 Black
male 96.54 Black
male 76.4446 Black
female 87.31 White
female 85.07 White
female 16.41 White
female 70.3196 White
male 72.8228 White
male 87.35 White
male 16.7 White
male 33.1 White
female 67.3448 White
female 27.78 White
female 84.25 White
female 75.97 White
female 92.99 Black
female 77.77 White
female 96.92 Black
female 49.5048 Black
female 90.01 White
male 49.64193333 White
female 51.94 White
female 74.22 White
female 43.3578 White
female 34.1 White
female 93.58 Other
male 84.992 NH/OPI
female 35.44 White
female 99.59 Other
male 70.9452 White
female 94.3 White
male 61.7256 Black
male 38.97 Black/White
female 89.18 Black/White
female 99.31 Black/White
male 1.37 White
female 38.4264 White
male 98.84 Other
male 63.745 White
female 80.8106 White
male 15.84 White
male 63.1488 Black/White
male 92.48 White
male 89.8388 White
female 45.32 White
female 76.64 White
female 46.7154 White
female 98.79 White
female 53.03 White
female 96.11 White
female 62.751 AI/AN
female 90.7618 White
female 74.24 White
female 89.76 White
female 42.422 White
female 99.24 White
female 96.53 White
female 4.07 White
female 49.33476 White
female 43.38 White
female 93.67 White
female 55.5036 White
female 80.28 White
female 65.1712 NH/OPI
female 57.27706667 White
female 63.4246 White
male 98.39 White
female 44.35 White
female 67 Black
female 85.48 White
male 89.56 White
male 47.98 Black
female 92.7 Other
female 40.55 White
female 95.51 White
female 98.82 White
male 73.72 White
female 50.93 Black
male 6.8 White
female 62.859 White
male 72.4994 White
female 58.34073333 White
female 64.033 White
female 47.81 Black
male 40.08 Black
male 59.8416 Black
male 55.77 White
female 41.52 White
female 45.85 White
male 95.76 Other
male 36.6801 White
female 67 White
female 42.19 Black
male 70.84 AI/AN
male 2.19 Asian
female 97.38 Black
male 81.85 White
male 47.47 White
female 60.07 White
female 55.8374 AIAN/White
male 98.09 White
female 70.79 Asian
female 6.08 Other
female 50.35 White
male 28.64 Black
male 93.3 White
male 43.0508 White
female 76.6 White
female 77.6248 Black
female 66.09 Other
male 58.4392 White
female 80.88 Black
male 98.73 White
male 93.18 White
female 10.52 White
female 31.25 White
female 94.16 White
female 60.7388 White
male 99.01 White
male 97.92 Black
female 89.23 White
female 89.493 Black/White
female 95.87 White
female 33.67 White
female 92.84 Other
female 80.25 Asian
female 60.0949 White
female 81.7912 Other
female 85.72 White
female 68.839 White
female 81.63 White
female 84.972 Other
male 74.85 White
female 74.35 White
male 75.30667 White
female 60.52 White
female 88.08 AIAN/White
female 80.93 NH/OPI
female 84.59367 Other
female 66.9592 White
female 54.2538 Black/White
male 48.64793 Asian
female 81.05 Other
female 59.72 Black
female 40.4506 Black
female 94.83 White
female 49.89873 White
male 30.99047 Black
female 55.23 White
female 78.38564 AI/AN
female 27.67 Black
female 50.96 Black
male 99.26 White
female 70.21425 White
female 55.4878 White
female 95.77 Asian
male 42.91 Black
female 40.82 Black
male 44.02 Black
female 64.1312 White
female 73.3286 Black
female 30.98 Black
male 40.08 White
male 78.07 Black
male 74.31 Black
female 91.46 Black
female 47.1928 Other
female 89.9248 White
female 76.51 NH/OPI
female 71.0991 White
female 45.34 White
female 96.27 White
female 86.8894 Black
female 94.16 Black
female 15.99 White
male 23.29 AIAN/White
female 52.56 White
female 85.9706 Black/White
female 79.4192 Black
male 44.08 Black
male 58.88 White
male 6.48 Black
male 95.26 White
male 83.93 White
female 58.87 White
female 85.5616 White
male 95.79 White
female 86.5638 White
female 23.52 White
female 81.32 White
female 84.66 White
female 66.18613 White
female 49.88 White
female 18.74 White
female 84.3632 White
male 44.37 Other
male 51.87 Black
female 47.4537 White
male 95.43 White
female 97.23 Black
male 67.56715 Other
female 83.96 White
male 67.2088 White
female 2.6 Other
female 66.09 White
female 52.01 White
female 94.29 White
female 66.09 White
male 68.5992 White
male 85.4982 White
female 50.12 White
female 73.92 White
male 67.5775 Black
female 87.9906 White
female 83.09 White
female 57.7228 Asian
female 64.232 Black
female 42.8042 White
female 69.6212 Black
male 0.04 Black
female 88.61 White
female 84.25 White
female 85.25 White
male 81.48 White
female 96.71 Black
female 67.8374 Black
female 62.96 Black
female 73.26896 White
female 44.3378 White
female 61.62513 Other
female 59.77 White
male 23.189 White
female 96.63 White
male 41.79173 AI/AN
female 80.67 White
female 52.22 Asian
female 45.32 White
male 50.11 White
male 61.37613 White
female 57.92 White
female 74.81 White
female 75.7822 Black
male 47.98 White
male 3.3 White
male 93.0552 White
male 89.66004 White
male 13.56 NH/OPI
male 25.02 White
male 75.09 Asian
male 83.31 White
male 83.31 White
female 97.64 AI/AN
male 39.83 AIAN/White
female 45.32 Black
male 29.39 NH/OPI
female 95.15 Black
female 67.12 Black
male 87.3932 Black
male 71.04 Black
female 92.47 White
male 54.594 Asian
female 79.16 White
female 61.87 White
male 54.3018 Black
male 71.2 Black
male 60.3532 Black
male 92.19 White
female 85.0538 White
female 96.99 Black
female 3.21 AI/AN
female 98.37 AIAN/White
female 35.05 White
female 89.58 Other
female 53.2 Black
male 60.48 White
male 91.3744 Black
female 81.94 White
female 30.97 White
male 94.92 Black
male 97.81 Black
female 45.04 Other
female 88.5352 White
male 87.39 Black
female 94.41 Black
male 63.49 Black
female 89.1319 Black
female 71.5398 Black
female 41.89 Black/White
male 42.62 Black
female 61.05 White
female 66.3626 White
female 55.821 White
female 60.76 White
male 99.59 White
female 60.10095 White
female 46.94 White
female 68.81 White
female 83.33 White
female 55.6256 White
female 95.48 Other
female 43.44 Black
female 99.27 White
male 88.96 White
male 36.89 White
female 94.48 White
female 12.77 White
female 1.43 Asian
male 0.02 White
female 60.1131 NH/OPI
female 56.13 Asian
<!DOCTYPE html>
<meta charset="utf-8">
<style type="text/css">
text {
font: 10px sans-serif;
}
circle {
stroke-width: 0;
}
</style>
<body>
<script src="https://d3js.org/d3.v3.min.js"></script>
<script>
var tooltip = d3.select("body")
.append("div")
.style("position", "absolute")
.style("z-index", "20")
.style("visibility", "hidden")
.style("color", "white")
.style("padding", "8px")
.style("background-color", "rgba(0, 0, 0, 0.75)")
.style("border-radius", "6px")
.style("font", "12px sans-serif")
.text("");
var width = 960,
height = 800,
padding = 1.5, // separation between same-color nodes
clusterPadding = 6, // separation between different-color nodes
maxRadius = 20;
var color = d3.scale.ordinal()
.range(["#ADBCCC", "#0079BB", "#9E519F", "#6E86B4", "#C172C2", "#D2D2D1","#516c9e"]);
var radiusScale = d3.scale.sqrt().domain([1, 5192]).range([1, 60])
d3.text("bubbleChart1.csv", function(error, text) {
console.log(text);
if (error) throw error;
var colNames = "text,size,group\n" + text;
var data = d3.csv.parse(colNames);
data.forEach(function(d) {
d.size = +d.size;
});
//unique cluster/group id's
var cs = [];
data.forEach(function(d){
if(!cs.contains(d.group)) {
cs.push(d.group);
}
});
console.log(cs)
var n = data.length, // total number of nodes
m = cs.length; // number of distinct clusters
//create clusters and nodes
var clusters = new Array(m);
var nodes = [];
for (var i = 0; i<n; i++){
nodes.push(create_nodes(data,i));
}
console.log(nodes)
var force = d3.layout.force()
.nodes(nodes)
.size([width, height])
.gravity(.02)
.charge(0)
.on("tick", tick)
.start();
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height);
console.log(data)
var node = svg.selectAll("circle")
.data(nodes)
.enter().append("g").call(force.drag)
.on("mouseover", function(d) {
tooltip.html(d.group + "<br><br> BMI: " + d.size + "<br>Gender: " + d.text);
tooltip.style("visibility", "visible");
})
.on("mousemove", function() {
return tooltip.style("top", (d3.event.pageY-10)+"px").style("left",(d3.event.pageX+10)+"px");
})
.on("mouseout", function(){return tooltip.style("visibility", "hidden");});
node.append("circle")
.style("fill", function (d) {
return color(d.cluster);
})
.attr("r", function(d){return d.radius})
node.append("text")
.attr("dy", ".3em")
.style("text-anchor", "middle");
// .text(function(d) { return d.text.substring(0, d.radius / 3); });
function create_nodes(data,node_counter) {
var i = cs.indexOf(data[node_counter].group),
r = Math.sqrt((i + 1) / m * -Math.log(Math.random())) * maxRadius,
d = {
size: data[node_counter].size,
cluster: i,
group: data[node_counter].group,
radius: radiusScale(data[node_counter].size)*1.5,
text: data[node_counter].text,
x: Math.cos(i / m * 2 * Math.PI) * 200 + width / 2 + Math.random(),
y: Math.sin(i / m * 2 * Math.PI) * 200 + height / 2 + Math.random()
}
if (!clusters[i] || (r > clusters[i].radius)) clusters[i] = d;
console.log(d);
return d;
};
function tick(e) {
node.each(cluster(10 * e.alpha * e.alpha))
.each(collide(.5))
.attr("transform", function (d) {
var k = "translate(" + d.x + "," + d.y + ")";
return k;
})
}
// Move d to be adjacent to the cluster node.
function cluster(alpha) {
return function (d) {
var cluster = clusters[d.cluster];
if (cluster === d) return;
var x = d.x - cluster.x,
y = d.y - cluster.y,
l = Math.sqrt(x * x + y * y),
r = d.radius + cluster.radius;
if (l != r) {
l = (l - r) / l * alpha;
d.x -= x *= l;
d.y -= y *= l;
cluster.x += x;
cluster.y += y;
}
};
}
// Resolves collisions between d and all other circles.
function collide(alpha) {
var quadtree = d3.geom.quadtree(nodes);
return function (d) {
var r = d.radius + maxRadius + Math.max(padding, clusterPadding),
nx1 = d.x - r,
nx2 = d.x + r,
ny1 = d.y - r,
ny2 = d.y + r;
quadtree.visit(function (quad, x1, y1, x2, y2) {
if (quad.point && (quad.point !== d)) {
var x = d.x - quad.point.x,
y = d.y - quad.point.y,
l = Math.sqrt(x * x + y * y),
r = d.radius + quad.point.radius + (d.cluster === quad.point.cluster ? padding : clusterPadding);
if (l < r) {
l = (l - r) / l * alpha;
d.x -= x *= l;
d.y -= y *= l;
quad.point.x += x;
quad.point.y += y;
}
}
return x1 > nx2 || x2 < nx1 || y1 > ny2 || y2 < ny1;
});
};
}
});
Array.prototype.contains = function(v) {
for(var i = 0; i < this.length; i++) {
if(this[i] === v) return true;
}
return false;
};
</script>
Allagash 25 1
Dogfish 23 1
Flying Dog 22 1
Founders 21 1
Stone 20 1
Bells 19 1
Victory 18 1
21st Amendment 17 1
Yards 16 1
Lagunitas 15 1
Brooklyn 14 1
Duvel 13 1
Rogue 12 1
Full Sail 11 1
Left Hand 10 1
Chevy 25 2
Ford 23 2
Dodge 22 2
BMW 21 2
Mercedes 20 2
VW 19 2
Porsche 18 2
Audi 17 2
Jeep 16 2
Acura 15 2
Honda 14 2
Toyota 13 2
Bugatti 12 2
Ferrari 11 2
Jaguar 10 2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment