public void computeDistribution(PlotFrame data) { int numberOfBins = 20; int numberOccupied = 0; double occupied[] = new double[numberOfBins]; double number[] = new double[numberOfBins]; double binSize = 1.0 / numberOfBins; int minX = Lx / 3; int maxX = 2 * minX; for (int x = minX; x <= maxX; x++) { for (int y = 0; y < Ly; y++) { int bin = (int) (numberOfBins * (site[x][y] % 1)); number[bin]++; if ((site[x][y] > 1) && (site[x][y] < 2)) { numberOccupied++; occupied[bin]++; } } } data.setMessage("Number occupied = " + numberOccupied); for (int bin = 0; bin < numberOfBins; bin++) { data.append(0, (bin + 0.5) * binSize, occupied[bin] / number[bin]); } }