мне нужно напечатать гистограмму следующим образом:Как печатать числа на горизонтальной гистограмме?
My Histogram
12.0 #### 2.3
12.5 ### 1.55
13.0 ######################################## 21.9
13.5 ########################### 13.33
14.0 ################################## 17.25
14.5 ########## 5.21
У меня есть гистограмма масштабирования. В целом, Название будет первым, а ниже нижнего ряда в позиции 40 или около него будет шкала, то есть «хорошее» число рядом с максимальным значением. После каждого бара следует его длина.
Вот мой код. Мне нужна помощь, чтобы получить цифры справа и слева от гистограммы для печати, а затем название. У меня есть уравнение, необходимое для шкалы чисел слева, но оно не будет печататься. Наряду с названием и данными справа.
import java.util.Scanner;
public class Array3
{
public static void main(String[] arg)
{
Histogram h = new Histogram();
System.out.println(h.readHistogram());
} // end main
} // end Array
class Histogram
{
private String title;
private double start, stop;
private double[] data;
public Histogram(String title, double start, double stop, double[] data, int numBars)
{
this.title = title;
this.start = start;
this.stop = stop;
this.data = new double[numBars];
for(int i = 0; i < numBars; ++i)
{
if(data.length > i)
{
this.data[i] = data[i];
} // end if
} // end for
} // end constructor Histogram
public Histogram(){}
public String toString()
{
String numOfHash = "";
int a;
double max = data[0];
double step1 = (stop-start)/(data.length-1);
for(int k = 0; k < data.length; ++k)
{
if(data[k] > max)
{
max = data[k];
}
}
for(int i = 0; i < data.length; ++i)
{
a = (int) (data[i] + .5);
double startNum = start + step1*i;
System.out.println(startNum);
for(int j = 0; j < a * 40/max ; ++j)
{
numOfHash = numOfHash + "#";
} // end for loop
numOfHash = numOfHash + "\n";
} // end for loop
return numOfHash;
} // end toString
public Histogram readHistogram()
{
int num = 0;
Scanner stdin = new Scanner(System.in);
System.out.println("Enter a histogram.");
System.out.println("Title: ");
String title = stdin.nextLine();
System.out.println("Start value: ");
double start = stdin.nextDouble();
System.out.println("End Value: ");
double stop = stdin.nextDouble();
System.out.println("Data: ");
double[] data = new double[6];
for(int i = 0; i < 6; ++i)
{
data[i] = stdin.nextDouble();
num++;
}
return new Histogram(title, start, stop, data, num);
}
} // конец Гистограмма