All pastes #1235820 Raw Edit

processingjs tufte

public javascript v1 · immutable
#1235820 ·published 2008-10-24 17:26 UTC
rendered paste body
//source: http://pradeepgowda.com/programming/tuft-graphics-processingjsPGraphics pg;void setup() {  size(600,700);  pg = createGraphics(600, 700, P3D);  stroke(11,11,255);  fill(11,11,255); }ypos = function(val, minval, maxval){  return height * (0.9 - 0.8 * (val - minval) / (maxval - minval));};void draw() {  PFont fontA = loadFont("Verdana");  textFont(fontA, 12);  var data = [ ['Sweden', 46.9, 57.4, 0., 0.],         ['Netherlands', 44.0, 55.8, .3, 0.],         ['Norway', 43.5, 52.2, 0., 0.],         ['Britain', 40.7, 39.0, 0., 0.],         ['France', 39.0, 43.4, 0., 0.6],         ['Germany', 37.5, 42.9, 0., -0.4],         ['Belgium', 35.2, 43.2, 0., 0.],         ['Canada', 35.2, 35.8, .8, 0.4],         ['Finland', 34.9, 38.2, -0.5, 0.],         ['Italy', 30.4, 35.7, 0.3, -0.3],         ['United States', 30.3, 32.5, -0.3, 0.],         ['Greece', 26.8, 30.6, 0.4, 0.],         ['Switzerland', 26.5, 33.2, -0.2, 0.1],         ['Spain', 22.5, 27.1, 0., 0.3],         ['Japan', 20.7, 26.6, 0., 0.], ]  text("Current Receipts of Goverment as a Percentage of Gross Domestic Product, 1970 and 1979", 20, 50, 215);  text("1970", width*.28, height*0.03);  text("1979", width*.68, height*0.03);  var alldata = [];  for (var i=0; i < data.length; ++i){    alldata.push(data[i][1]);    alldata.push(data[i][2]);  }    var minval = Math.min.apply( Math, alldata );var maxval = Math.max.apply( Math, alldata );   for (var i=0; i < data.length; ++i){    var label = data[i][0]; var start = data[i][1];    var end = data[i][2]; var startfudge = data[i][3];    var endfudge = data[i][4]; //for readability//    textAlign(RIGHT);    text(label, 0, ypos(start+startfudge,minval, maxval)+4, 0.25*width);    text(start.toString(), 0.25*width, ypos(start+startfudge,minval,maxval)+4, 0.07*width);//    textAlign(LEFT);    text(label, width*.75, ypos(end+endfudge,minval,maxval)+4);    text(end.toString(), 0.68*width, ypos(end+endfudge,minval,maxval)+4, 0.07*width);    line(width*.33, ypos(start,minval,maxval), width*.67, ypos(end,minval,maxval));  }}