2012-08-15 111 views
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.我該如何繪製?

非常感謝!

回答

0

爲什麼不直接使用直方圖?

聚類中心的直方圖並不是一個非常合理的數據表示。

+0

我知道你的意思,但我需要它,因爲我將有300多個角度。我只想知道特定氨基酸具有哪些確認(它是一種蛋白質)。 – user1572691 2012-08-15 15:57:03

+0

對於直方圖,300多個角度沒有區別。當你只對整體分佈感興趣時,這恰好是*你使用直方圖的原因,大樣本。每個直方圖bin *收集*多個角度...你嘗試*做一個角度直方圖嗎?直方圖有哪些*確切*錯誤?如果你想要一個更簡單的直方圖,使用更少的箱子。 – 2012-08-15 22:39:09

+0

我明白你的意思了。使用更少的工作箱,非常感謝! – user1572691 2012-08-16 15:23:33

0

不知道我理解你的問題。總之儘量保存您的直方圖此陣

H=hist(average, bins=50) 

中如果你想繪製它然後做

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

H[1]是存儲箱中心和H[0]在每個箱計數的數組。我希望這有助於。