# PlotTukey.java

Below is the syntax highlighted version of PlotTukey.java.

```/*******************************************************************************
*  Name:    T. Shy
*  Precept: P00
*
*  Compilation:  javac PlotTukey.java
*  Execution:    java PlotTukey N
*  Dependencies: StdDraw.java
*
*  Draws Tukey plots for N random doubles in the range [0., 1.).
*  N is the first command-line argument to the program.
*
******************************************************************************/

public class PlotTukey
{

//calculate the mean of a[0..n]
public static double mean(double[] a, int n) {
double sum = 0.0;
for (int i = 0; i <= n; i++) sum += a[i];
return sum/(n + 1);
}

//calculate the std. err. of the mean of a[0..n]
public static double sigma(double[] a, int n) {
double mean = mean(a, n);
double var = 0.0;

//one point case
if (n <= 0) return 0.0;

for (int i = 0; i <= n; i++) {
double d = mean - a[i];
var += d*d;
}
var /= n;

return Math.sqrt(var/(n + 1));
}

public static void main(String[] args) {
int N = Integer.parseInt(args[0]);
double[] a = new double[N];

//initialize "a" with random double values
for (int i = 0; i < N; i++) {
a[i] = Math.random();
}

StdDraw.setXscale(0, N-1);

for (int i = 0; i < N; i++) {
double mean = mean(a, i);
double sig = sigma(a, i);

StdDraw.setPenColor(StdDraw.BLACK);
StdDraw.point(i, a[i]);
//draw the std. dev. lines
StdDraw.line(i, mean + sig, i, mean + 2*sig);
StdDraw.line(i, mean - sig, i, mean - 2*sig);

StdDraw.setPenColor(StdDraw.RED);
StdDraw.point(i, mean);
}
}
}

```