1

この問題を調査しようとしましたが、失敗しました。私はPythonの初心者なので、我慢してください。

各行に数字を含むテキストファイルがあります(角度は度です)。最初に角度を 20 のクラスター サイズにクラスター化します。次に、これをヒストグラムにプロットします。次のコードがあります。

angle = open(output_dir+'/chi_angle.txt', 'r').read().splitlines()
array = numpy.array(map(float, angle))
hello = list(array)
from cluster import *
cl = HierarchicalClustering(hello, lambda x,y: abs(x-y))
clusters = cl.getlevel(20)
frequency = [len(x) for x in clusters]
average = [1.0*sum(x)/len(x) for x in clusters]

今。私の質問は次のとおりです。ヒストグラムをプロットするにはどうすればよいですか?

次のことを行います。

pylab.hist(average, bins=50)
pylab.xlabel('Chi 1 Angle [degrees]')
pylab.ylabel('#')
pylab.show()

バーが正しく配置されたヒストグラム (つまり、各クラスターの平均) が表示されますが、各クラスターに含まれる「角度」の数は表示されません。

明確にするために。クラスタ化されたデータは次のようになります。

clusters = [[-60.26, -30.26, -45.24], [163.24, 173.24], [133.2, 123.23, 121.23]]

各クラスターの平均と、各クラスターの角度の数が必要です。したがって、ヒストグラムでは、最初のバーは -50 付近にあり、高さは 3 になります。これをプロットするにはどうすればよいですか?

どうもありがとう!

4

2 に答える 2

1

私があなたの質問を理解したかどうかわかりません。とにかく、この配列にヒストグラムを保存してみてください

 H=hist(average, bins=50)

それをプロットしたい場合は、

 plot(H[1][1:],H[0])

H[1]H[0]ビンの中心と各ビンのカウントを格納する配列です。これが役に立ったことを願っています。

于 2012-08-15T14:50:54.357 に答える
0

すぐにヒストグラムを使用してみませんか?

クラスター中心のヒストグラムは、データを適切に表現したものではありません。

于 2012-08-15T14:21:36.000 に答える