public void update(double[] y) {
		
		if (numPoints < N) {
			// Just add this point to the end - not saturated and don't have to scroll yet!
			for(int p = 0; p < numPlots; p++) {
				y_vals[p][numPoints] = y[p];
			}
			numPoints++;
			
		} else {
			// Scroll all the points over by 1, and then add it
			for(int i = 0; i < N - 1; i++) {
				for(int p = 0; p < numPlots; p++) {
					y_vals[p][i] = y_vals[p][i + 1];
				}
			}
			 
			for(int p = 0; p < numPlots; p++) {
				y_vals[p][N - 1]  = y[p];
			}
		}
		
		if (AUTO_Y_SCALE) {
			for(int i = 0; i < numPlots; i++) {
				if (maxY < y[i]) {
					maxY = y[i];
				}
			}
		}
		
	}