0

数字のリストがあります。リストは[0,0,1,0,1....]のようなものです。現在は2進数のみですが、後で10進数も含めることができます。このシーケンスのヒストグラムをリストにプロットしたいと思います。matplotlibライブラリの標準の履歴関数を使用すると、2つのバーしか取得されません。すべてのゼロとすべての1がカウントされ、2つのバーのヒストグラムが表示されます。しかし、私は別の方法でプロットしたいと思います。バーの数=リストの長さと各バーの高さ=(位置=バー#)のリストの値が必要です。

コードは次のとおりです。

 def plot_histogram(self,li_input,):
     binseq = numpy.arange(len(li_input))
     tupl = matplotlib.pyplot.hist(li_input,bins=binseq)
     matplotlib.pyplot.show()

li_inputは、上記で説明したリストです。

私は次のような厄介な方法でそれを行うことができます:

li_input_mod = []
   for x in range(len(li_input)):
   li_input_mod += [x]*li_input[x]

そしてそれをプロットしますが、私はもっと良いものが欲しいです。

4

1 に答える 1

3

説明する動作は、ヒストグラムが機能する方法です。値の分布を示します。棒グラフを作成したいように思えます。

import matplotlib.pyplot as plt

x = [0,0,1,0,1,1,0,1,1,0,0,0,1]
plt.bar(range(len(x)), x, align='center')

これは以下を生成します:

棒グラフ

于 2012-06-04T09:49:48.940 に答える