2010-06-03 35 views
13

göstermiyor Bazı verilerde hiyerarşik bir kümeleme oluşturmak için scipy-cluster kullanıyorum. Uygulamanın son adımı olarak, kümelemeyi çizmek için dendrogram işlevini çağırıyorum. Mac OS X Snow Leopard üzerinde yerleşik Python 2.6.1 ve this matplotlib package'u kullanarak çalışıyorum. Program iyi çalışıyor, ancak sonunda Roket Gemisi simgesi (anladığım kadarıyla, bu Python'daki GUI uygulamalarının başlatıcısıdır) bir şey yapmadan hemen görünüp yok olur. Hiçbir şey gösterilmiyor. Aramadan sonra 'raw_input' eklerseniz, sonsuza dek dock'ta yukarı ve aşağı doğru seker. Terminalden matplotlib için basit bir örnek uygulama çalıştırırsam iyi çalışır. Bu konuda herhangi bir tecrübesi var mı?Scipy-cluster tarafından oluşturulan Dendrogram,

cevap

16

Ubuntu 10.04'te de aynı sorun vardı. Grafik bağımsız bir komut dosyası yürütülürken gösterilecek almak için

ipython -pylab 

: grafikler, interaktif konsoldan ipython gelen görüntüler matplotlib etkileşimli kullanımını sağlayan "-pylab" anahtarı ile başlatmak için almak için , matplotlib.pyplot.show çağrısı kullanın. Benim için bir fark yaratmak değildi "-pylab" anahtarı ile ipython çağırma

from matplotlib.pyplot import show 

from hcluster import pdist, linkage, dendrogram 
import numpy 
from numpy.random import rand 

X = rand(10,100) 
X[0:5,:] *= 2 
Y = pdist(X) 
Z = linkage(Y) 
dendrogram(Z) 

show() 
4

: Burada hcluster ana sayfasından bir örnek, ilk ve son satır önemli burada parçalarıdır. (Sistem: Fedora 13)

İdeal olmamasına rağmen, çözümüm sonuçta ortaya çıkan rakamı bir dosya olarak yazmaktı. Örneğin : Bu aynı sorunla çalışan kimse yardımcı olur

... 
dendrogram(Z) 
pylab.savefig("temp.png") 

Umut.

Değişiklik: basitçe yani öğretici gösterilen dendrograma çizimin çeşitli tipleri sonra() özellikle bu Araman pylab.savefig içinde, hcluster paketin kısa öğretici ile

distMat = # whatever distance matrix you have 
dendrogram(linkage(distMat)) 
pylab.savefig("exampleDendrogram.png") 
dendrogram(linkage(distMat, method="complete")) #instead of default "single" 
pylab.savefig("exampleDendrogram.png") 
kopyala-yapıştır kullanarak konusunda dikkatli olun

Daha sonra exampleDendrogram.png, hem tek bağlantı dendrogramı hem de tam bağlantı dendrogramını aynı şekilde içerecek ve muhtemelen çapraz-kesişecek ve bir karmaşaya benzeyecektir. Benim kadar aptal olarak iseniz

, sen aslında dendrogramın arasındaki matplotlib sıfırlama meselesi düzgün, hcluster nasıl kullanılacağı hakkında kafa karışıklığı içinde 30-180 dakika harcayacağınız çağırır:

distMat = # whatever distance matrix you have 
dendrogram(linkage(distMat)) 
pylab.savefig("exampleDendrogram1.png") 
pylab.cla() 
dendrogram(linkage(distMat, method="complete")) #instead of default "single" 
pylab.savefig("exampleDendrogram2.png") 

Şimdi, ortaya çıkan dendrogram görüntü dosyaları, bunların nasıl görüneceğini beklediğiniz gibi görünecek.

İlgili konular