Вызов ipython с ключом -pylab для меня не имел значения.
(Система: 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" )
Тогда exampleDendrogram.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" )
Теперь полученные файлы изображений дендрограмм будут выглядеть так, как вы ожидали, что они будут выглядеть.