// This example is based on the Datasaurus dataset by
   // Alberto Cairo
float[] data1, data2;
void setup() {
   size(600, 600);
   // Read data
   String[] lines = loadStrings("ScaryData.csv");
   //printArray(lines);
   println(lines.length);
 // Parse it
   data1 = new float[lines.length];
   data2 = new float[lines.length];
 for (int i = 0; i < lines.length; i++) {
   String[] pieces = split(lines[i], ",");
   data1[i] = float(pieces[0]);
   data2[i] = float(pieces[1]);
   }
   //printArray(data1);
   println("Read...parsed.");
 println(max(data1));
   println(min(data1));
 // Compute mean...
 //noLoop();
   } // setup()
void draw() {
   background(255);
 // Draw axes
   // X and & Axes
   strokeWeight(1);
   stroke(0);
   line(50, height-50, width-50, height-50);
   line(50, height-50, 50, 50);
 // Labels
   for (int index = 0; index <= 100; index += 10) {
   fill(0);
   strokeWeight(1);
   stroke(0);
   text(str(index), map(index, 0, 100, 50, width-50), height-40);
   textAlign(RIGHT);
   text(str(index), 50, map(index, 0, 100, height-50, 50));
   }
 // Draw Scatter plot
   for (int i = 0; i < data1.length; i++) {
   // plot data1[i], data2[i]
   float x = map(data1[i], 0, 100, 50, width-50);
   float y = map(data2[i], 0, 100, height-50, 50);
   strokeWeight(10);
   stroke(0);
   point(x, y);
 // Interactivity
   if (dist(mouseX, mouseY, x, y) <= 10) {
   stroke(255, 0, 0);
   fill(255, 0, 0);
   strokeWeight(1);
   //println(mouseX, mouseY);
   text(data1[i]+", "+data2[i], mouseX, mouseY);
   }
   }
   } // draw()