1
freq = {1: 1000, 2: 980, 4: 560, ... 40: 3, 41: 1, 43: 1}

(1~43まで、すべての数字がキーというわけではありません)

ヒストグラムを作成してプロットし、matplotlib を使用して X 軸に各キー、Y 軸に値を表示できるようにします。どうすればいいですか?ビンを作成したくありません (すべての値を個別にカバーする必要があります)。また、用語を理解するのに役立つチュートリアルもありません。私も時間がないので、すべての用語に入ることができませんでした。これを行う最善の方法は何ですか?

4

2 に答える 2

2

matplotlib を使用すると、2D ヒストグラムを作成できます

>>> import matplotlib.pyplot as plt
>>> freq = {1: 1000, 2: 980, 4: 560,40: 3, 41: 1, 43: 1}
>>> x = list(freq.keys())
>>> y = list(freq.values())
>>> plt.hist2d(x,y)
(array([[ 0.,  0.,  0.,  0.,  0.,  1.,  0.,  0.,  0.,  2.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 3.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.]]), array([  1. ,   5.2,   9.4,  13.6,  17.8,  22. ,  26.2,  30.4,  34.6,
        38.8,  43. ]), array([    1. ,   100.9,   200.8,   300.7,   400.6,   500.5,   600.4,
         700.3,   800.2,   900.1,  1000. ]), <matplotlib.image.AxesImage object at 0xb475012c>)
>>> plt.show()

ヒストグラム 2D

于 2015-03-05T06:53:36.550 に答える