我正在尝试使用 TreeMap 中的值打印出直方图。我使用最小的数字作为底数,数字与底数的比率决定了直方图条的高度。以下是我的代码:它将打印出由星号“*”表示的水平条。基数(值为 1)将有两颗星。然而,问题是所有其他酒吧也有两颗星,看起来与底座没有什么不同。
private static void printHistogram(TreeMap<String, Integer> mapA)
{
int baseVal = mapA.firstEntry().getValue();
String baseKey = mapA.firstKey();
for (Map.Entry<String, Integer> e : mapA.entrySet())
{
int times = e.getValue() / baseVal;
System.out.print(e.getKey() + "\t \|");
for (int j = 0; j < times; j++)
{
System.out.print("**");
}
System.out.print("\n");
}
}
这是直方图打印输出:
21 |**
22 |**
23 |**
24 |**
25 |**
26 |**
27 |**
28 |**
29 |**
30 |**
31 |**
32 |**
33 |**
以下是我的 TreeMap 中的数字(排序前):
99255
98321
98860
95365
85412
86105
84972
88132
80223
76273
74056
74077
52523
与基数 52523 的比率小于 2。我想知道如何在视觉上放大差异?因为我在终端打印直方图,所以我不能使用图形直方图库,除非它可以将图像保存为文件。