4

ヒストグラムを表示しようとしています。以下の配列は、ヒストグラムの個々のビンのカウントです。

binVals = [0,5531608,6475325,1311915,223000,609638,291151,449434,1398731,2516755,3035532,2976924,2695079,1822865,1347155,304911,3562,157,5,0,0,0,0,0,0,0,0,0]

どうすればこれを行うことができますか?このコードで試しました

import matplotlib.pyplot as plt
binVals = [0,5531608,6475325,1311915,223000,609638,291151,449434,1398731,2516755,3035532,2976924,2695079,1822865,1347155,304911,3562,157,5,0,0,0,0,0,0,0,0,0]
plt.hist(binVals, bins=len(binVals), color='r', alpha=0.5, label='Values')
plt.title("Demo Histogram")
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.legend()
plt.show()

これはこれに似た画像を返しますデモヒストグラム画像

ただし、ビン0と19から27のカウントはゼロであるため、これはオフですbinVals。上の画像のゼロ値は、私が期待する場所にありません。

私はこれに似たものを期待しています

期待される画像

このタイプの結果を取得するためにコードを変更するにはどうすればよいですか?

ボーナスの質問として、予想されるグラフの下部に、適切にラベル付けされたビンがあります。これはmatlibplotで実行できますか?

4

1 に答える 1

2

私はあなたが間違ったことを計画していると思います。Matplotlibはヒストグラム自体を計算します。これで、値が0〜250,000のビンが14個、値が250,000〜500,000のビンが3個あることがプロットされます。ヒストグラムを自分で計算する場合は、bar()プロットを使用するか、Matplotlibにヒストグラムを計算させます。

目盛りラベルには、set_xticklabels(["Under 600", "600-700",...], rotation = "vertical")

(コメントを回答にしたので、回答済みとしてマークできます)

于 2013-03-14T17:14:32.140 に答える