質問

私は使っている Scipy-Cluster いくつかのデータで階層クラスタリングを生成します。アプリケーションの最後のステップとして、私は dendrogram クラスタリングをプロットする機能。内蔵のPython 2.6.1と このmatplotlibパッケージ. 。プログラムは正常に実行されますが、最後にロケット船のアイコン(私が理解しているように、これはPythonのGUIアプリケーションのランチャーです)が表示され、何もせずにすぐに消えます。何も表示されません。通話後に「raw_input」を追加すると、ドックで永遠に上下に跳ね返ります。端末からMatplotlibの簡単なサンプルアプリケーションを実行すると、正常に実行されます。誰かがこれについて何か経験をしていますか?

役に立ちましたか?

解決

Ubuntu 10.04で同じ問題がありました。 IPython Interactive Consoleからグラフィックスを表示するには、「-Pylab」スイッチで開始します。これにより、Matplotlibのインタラクティブな使用が可能になります。

ipython -pylab

スタンドアロンスクリプトの実行中にグラフィックを表示するには、matplotlib.pyplot.show Callを使用してください。 Hcluster Homepageの例を次に示します。最初と最後の行はここに重要なビットです。

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()

他のヒント

「-pylab」スイッチでiPythonを呼び出すことは、私にとって違いをもたらしませんでした。 (システム:Fedora 13)

理想的ではありませんが、私の解決策は、結果の図をファイルとして明示的に記述することでした。例えば:

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

これが同じ問題に遭遇している人なら誰でも助けてくれることを願っています。

修正:Hclusterパッケージの簡単なチュートリアルでコピーアンドパスティを使用することに注意してください。特に、チュートリアルに示されているいくつかのタイプの樹状図描画の後にpylab.savefig()に電話する場合、つまり、つまり、IEに注意してください。

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" )

次に、ExampleDendRogram.pngには、同じ図の単一リンク樹状図と完全リンケージ樹状図の両方が含まれ、それらは交差して混乱のように見える可能性があります。

あなたが私と同じくらい愚かであれば、Hclusterを適切に使用する方法について混乱して30〜180分を費やします。実際には、樹状図コールの間にMatplotlibをリセットするだけの問題です。

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" )

これで、結果の樹状図画像ファイルは、あなたが期待していたもののように見えます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top