0

TreeMap の値を使用してヒストグラムを出力しようとしています。最小の数値をベースとして使用しており、数値とベースの比率によってヒストグラム バーの高さが決まります。以下は私のコードです。アスタリスク「*」で示される水平バーを出力します。ベース (値 1) には 2 つの星があります。ただし、問題は、他のすべてのバーにも 2 つの星があり、ベースと変わらないように見えることです。

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 未満です。違いを視覚的に拡大する方法を知りたいですか? 端末でヒストグラムを出力しているため、画像をファイルとして保存できない限り、グラフィカルヒストグラムライブラリを使用できません。

4

3 に答える 3