Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python scipy群集生成的树状图未显示_Python_Macos_Matplotlib_Scipy_Dendrogram - Fatal编程技术网

Python scipy群集生成的树状图未显示

Python scipy群集生成的树状图未显示,python,macos,matplotlib,scipy,dendrogram,Python,Macos,Matplotlib,Scipy,Dendrogram,我正在使用生成一些数据的层次聚类。作为应用程序的最后一步,我调用函数来绘制集群。我在MacOSXSnowLeopard上运行,使用内置的Python 2.6.1和。该程序运行良好,但在最后,火箭飞船图标(据我所知,这是python中GUI应用程序的启动程序)出现并立即消失,而不做任何操作。没有显示任何内容。如果我在通话后添加一个“原始输入”,它将永远在码头上上下跳动。如果我从终端运行matplotlib的简单示例应用程序,它可以正常运行。有人对此有经验吗?我在Ubuntu 10.04上也遇到过同

我正在使用生成一些数据的层次聚类。作为应用程序的最后一步,我调用函数来绘制集群。我在MacOSXSnowLeopard上运行,使用内置的Python 2.6.1和。该程序运行良好,但在最后,火箭飞船图标(据我所知,这是python中GUI应用程序的启动程序)出现并立即消失,而不做任何操作。没有显示任何内容。如果我在通话后添加一个“原始输入”,它将永远在码头上上下跳动。如果我从终端运行matplotlib的简单示例应用程序,它可以正常运行。有人对此有经验吗?

我在Ubuntu 10.04上也遇到过同样的问题。 要从ipython交互控制台显示图形,请使用“-pylab”开关启动,该开关启用matplotlib的交互使用:

ipython -pylab
要在执行独立脚本期间显示图形,请使用matplotlib.pyplot.show调用。以下是hcluster主页的一个示例,第一行和最后一行是此处的有效位:

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

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" )
然后exampledgendrogram.png将在同一个图中包含单连杆树状图和完整连杆树状图,它们很可能交叉,看起来像一团乱

如果你和我一样愚蠢,你会花30-180分钟来困惑如何正确使用hcluster,而实际上只是在树状图调用之间重置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" )
现在,生成的树状图图像文件将与您期望的一样