// Drawing a Bar Chart of BMC Science Majors // The data... int[] nMajors; String[] majors;
void setup() { size(600, 600); background(255); textSize(12); noLoop();
// Read data from a data file: SciMajors.txt // The data file should be created using a Plain Text Editor // It should be stored in the Data folder of the sketch // Read the data file as an array of strings, each line in a string. String[] lines = loadStrings("SciMajors.txt");
// Create the data arrays depending on how many lines were read from the data file println("Read " + lines.length + " entries from data file."); nMajors = new int[lines.length]; majors = new String[lines.length];
// Parse the strings in line[] into the data arrays for (int i = 0; i < lines.length; i++) { String[] pieces = split(lines[i], ","); majors[i] = pieces[0]; nMajors[i] = int(pieces[1]); } } // setup()
void draw() { float minX = 0.05*width; float maxX = 0.95*width; float minY = 0.05*height; float maxY = 0.95*height;
float N = nMajors.length; float barSpace = (maxX - minX)/N; float barW = barSpace*0.9;
float x = minX; noFill(); for (int i=0; i < N; i++) { float h = map(nMajors[i], 0, 92, 0, maxY-minY); float y = maxY-h; fill(0); rect(x, y, barW, h); text(majors[i], x, y+h+10); text(nMajors[i], x, y-10);
x = x + barSpace; } } // draw()