[英]How to plot DENDROGRAM in GUI
我正在使用從 QtDesigner 到 plot Dendrogram 的 GUI。 我的代碼在下面,但我不能 plot 樹狀圖,我該如何解決?
Error: 'AxesSubplot' object has no attribute 'dendrogram'
def dendro(self):
Z = linkage(X, method='ward', metric='euclidean', optimal_ordering=True)
c, coph_dists = cophenet(Z, pdist(X))
self.ui.linecoef.setText("%.3f" %c)
fig3 = Figure()
self.canvas3 = FigureCanvas(fig3)
self.ui.verticalLayout3.addWidget(self.canvas3)
fig3.subplots_adjust(top=0.93,bottom=0.125,left=0.1,right=0.97)
ax3f1 = fig3.add_subplot(121)
ax3f1.dendrogram(Z,leaf_rotation=90., leaf_font_size=8.,)
ax3f1.set_title('Hierarchical Clustering Dendrogram (full)')
ax3f1.set_xlabel('sample clusters')
ax3f1.set_ylabel('distance')
ax3f2 = fig3.add_subplot(122)
ax3f2.dendrogram(Z,truncate_mode='lastp', p=12, show_leaf_counts=True, show_contracted=True)
ax3f2.set_title('Hierarchical Clustering Dendrogram (truncated)')
ax3f2.set_xlabel('sample clusters size')
ax3f2.set_ylabel('distance')
self.canvas3.draw()
您必須從 scipy 導入樹狀圖:
from scipy.cluster import hierarchy
然后通過 ax 參數將坐標軸傳遞給它:
ax3f1 = fig3.add_subplot(121)
hierarchy.dendrogram.dendrogram(
Z, ax=ax3f2, leaf_rotation=90.0, leaf_font_size=8.0
)
ax3f1.set_title("Hierarchical Clustering Dendrogram (full)")
ax3f1.set_xlabel("sample clusters")
ax3f1.set_ylabel("distance")
ax3f2 = fig3.add_subplot(122)
hierarchy.dendrogram(
Z,
ax=ax3f2,
truncate_mode="lastp",
p=12,
show_leaf_counts=True,
show_contracted=True,
)
ax3f2.set_title("Hierarchical Clustering Dendrogram (truncated)")
ax3f2.set_xlabel("sample clusters size")
ax3f2.set_ylabel("distance")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.