循环绘制树状图scipy.cluster.hierarchy.树状图功能

2024-06-02 05:00:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在一个循环中建立一些树状图:在这个循环的每次迭代中,距离矩阵都会重新计算。然而,有树状图的图形看起来像是有(n)个树状图,其中n是循环中的迭代次数。如何“删除”以前的树状图?在

以下是我使用的脚本部分:

number = 1
for clique_list in cliq_per_chrom:
    print number
    chrlen = len(clique_list)
    print 'calculating DistMatrix'
    DistMatrix = np.zeros(shape=(chrlen,chrlen))
    #FILLING DISTMATRIX
    for i in range(chrlen):
        for j in range(chrlen):
            if i < j:
                recdistlist = []
                f_clique = clique_list[i].split('\t')
                s_clique = clique_list[j].split('\t')
                for pair_cont in itertools.product(f_clique, s_clique):
                    if pair_cont[0] != pair_cont[1]:
                        recombDistCorr = pair_rec_dist(pair_cont)
                    else:
                        recombDistCorr = 0.0
                    recdistlist.append(recombDistCorr)

                if 'INF' not in recdistlist: 
                    rec_dist_clq = np.mean(recdistlist)
                else:
                    rec_dist_clq = 1.14877996253
                DistMatrix[i][j] = rec_dist_clq
                DistMatrix[j][i] = rec_dist_clq
    #DENDROGRAM BUILDING
    linkage_matrix = linkage(DistMatrix, 'average')
    dend = dendrogram(linkage_matrix,leaf_rotation=90., leaf_font_size=8.)
    plt.title('Hierarchical Clustering Dendrogram of Chromosome'+str(number))
    plt.xlabel('Clique of contigs index')
    plt.ylabel('Distance')
    plt.savefig('Hierarchical Clustering Dendrogram of Chromosome'+str(number)+'.png',dpi=100)
    number +=1

Tags: innumberfordistpltlist树状rec