1

同様の質問をいくつか認識していますが、それらのコードを試してみましたが、私の環境では機能しません。そのため、データ (浮動小数点数) の大きなリストがあり、それをヒストグラムとしてプロットしたいと考えています。絶対度数は簡単にプロットできますが、相対度数 (縦軸、つまり y 軸の分数/パーセント) をプロットしたいと思います。私のコードは次のとおりです。

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
#1 - n, bins, patches = ax.hist(zdata, bins=ceil(min-max), normed=1, cumulative=0)
#2 - n, bins, patches = ax.hist(zdata, weights=np.zeros_like(data) + 1. / data.size)
ax.set_xlabel('Atomic z coordinate', size=ceil(min-max))
ax.set_ylabel('Relative Frequency')
ax.legend
plt.show()

Python がビン数を整数として要求することに気付きましたが、私は 70 を使用していることを知っているので、簡単に修正できます。私のより緊急の質問は、このスニペットでコメントアウトした両方のコマンドを試しても、どちらも機能しないということです。ケース 1 ではエラーは発生しませんが、コマンドを終了して show() を呼び出すと、図は表示されません。ケース 2 では NameError が発生し、「データ」が何であるかがわからないことを訴えます。私は他の質問でテンプレートに従いましたが、「データ」が何であるかはわかりません。値の配列 (リスト) は zdata です。また、ビンとパッチに違いはありますか?

私は python 2.7.3 を使用しており、IDE は Spyder 2.1.11 です。これが過去の質問と非常に似ている場合は、どうもありがとうございます。

4

1 に答える 1

1

このコマンドnp.zeros_like(data)は、配列と同じ長さとデータ型のゼロで埋められた配列を作成することを意味しますdata。このコマンドを使用する場合は、という配列を定義する必要がありますdata(定義されていない変数名を使用しようとしていることを意味します)。または、存在するので置き換えNameErrorたいと思うかもしれません。重みを入力データと同じ長さにします。datazdatazdata

ノート

これを書くより良い方法:

np.zeros_like(data) + 1. / data.size

これだろう

np.ones_like(data) / data.size
于 2013-06-07T17:54:53.933 に答える