// Area bubble visualization of births by weekday // Now using arrays...
// The data variables... // sun, mon, tue, wed, thu, fri, sat int[] data = { 5, 5, 1, 4, 4, 4, 8 };
String[] labels = { "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT" }; int total; float[] perc = new float[7];
// The sketch variables float maxW, maxArea, cx, cy, lastX, w;
color [] colors = { color(238, 118, 0), // sunday color(123, 165, 248), color(7, 57, 1), color(255, 246, 63), color(255, 0, 0), color(0, 255, 0), color(0, 0, 255) // saturday }; void setup() { size(500, 200); background(255); smooth();
// process // compute the total population total = 0; for (int i=0; i < data.length; i++) { total += data[i]; }
// compute percentages for (int i=0; i < data.length; i++) { perc[i] = float(data[i])/total; }
// sketch variables maxW = width/(1+data.length); maxArea = PI*maxW/2*maxW/2; cy = height/2; lastX = 0;
noLoop(); } // setup()
void draw() { for (int i=0; i < perc.length; i++) { // set up parameters for ith bubble cx = lastX+maxW; w = 2*sqrt(maxArea*perc[i]/PI);
// draw the bubble noStroke(); fill(colors[i]); ellipse(cx, cy, w, w); lastX = cx;
// labels stroke(0); fill(0); textSize(12); text(labels[i], cx-12, cy+50); }
// draw title fill(0); textSize(24); rectMode(CENTER); text("% Births by Day of Week", 100, 50); } // draw()