Question Description
Modify my code so that the standard output is now written so that the graph is “vertical”, as we would normally view a graph.
public class PrintDistribution {
public static int[] distribution = {0,1,8,59,215,703,1848,3975,8077,13937,22195,31628,
41711,51099,57142,59959,59670,55756,48850,40931,32583,
24995,18217,12794,8623,5577,3601,2272,1259,764,464,246,
153,80,39,22,12,6,3,0};
public static String yAxis = “|”;
public static int stars(int count) {
return count / 1000;
}
public static int getArray() {
int max = distribution[0];
for (int i = 0; i < distribution.length; i++) {
if(distribution[i] > max) {
max = distribution[i];
}
}
return max;
}
public static void main(String[] args) {
int array = getArray();
int xAxis = array / 10000 + 1;
System.out.print(” “.repeat(4));
for (int i = 0; i < xAxis + 1; i++) {
if (i == 0) {
System.out.print(i * 10000 + ” “.repeat(8));
}
else {
System.out.print(i * 10000 + ” “.repeat(4));
}
}
System.out.println();
System.out.print(” “.repeat(4));
for (int i = 0; i < xAxis + 1; i++) {
System.out.print(“|” + ” “.repeat(8));
}
System.out.println();
System.out.print(” “.repeat(4));
for (int i = 0; i < xAxis; i++) {
System.out.printf(“-“.repeat(10));
}
System.out.println();
for (int i = 0; i < distribution.length; i++)
if(i % 10 == 0) {
if (i == 0) {
System.out.print(i + ” “.repeat(3) + yAxis);
System.out.println(“*” + “*”.repeat(stars(distribution[i])));
}
else {
System.out.print(i + ” ” + yAxis);
System.out.println(“*” + “*”.repeat(stars(distribution[i])));
}
}
else {
System.out.print(” “.repeat(4) + yAxis);
System.out.println(“*” + “*”.repeat(stars(distribution[i])));
}
}
}