Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.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_Scipy_Cluster Analysis_Dendrogram - Fatal编程技术网

关于树状图-python(Scipy)的几个问题

关于树状图-python(Scipy)的几个问题,python,scipy,cluster-analysis,dendrogram,Python,Scipy,Cluster Analysis,Dendrogram,我是scipy的新手,但我成功地获得了预期的树状图。我还有一些问题 在树状图中,一些点之间的距离为0,但不是 由于图像边框可见。我如何删除边框并使其生效 y轴的下限为-1,以便清晰可见。 e、 g.这些点之间的距离为0(13,17)、(2,10)、(4,8,19) 如何在特定距离上修剪/截断。例如,在0.4处修剪 如何将这些集群(修剪后)写入文件 我的python代码: import scipy import pylab import scipy.cluster.hierarchy as sch

我是scipy的新手,但我成功地获得了预期的树状图。我还有一些问题

  • 在树状图中,一些点之间的距离为
    0
    ,但不是 由于图像边框可见。我如何删除边框并使其生效 y轴的下限为
    -1
    ,以便清晰可见。 e、 g.这些点之间的距离为
    0
    (13,17)、(2,10)、(4,8,19)
  • 如何在特定距离上修剪/截断。例如,在
    0.4处修剪
  • 如何将这些集群(修剪后)写入文件
  • 我的python代码:

    import scipy
    import pylab
    import scipy.cluster.hierarchy as sch
    import numpy as np
    
    D = np.genfromtxt('LtoR.txt', dtype=None)
    def llf(id):
        return str(id)
    fig = pylab.figure(figsize=(10,10))
    Y = sch.linkage(D, method='single')
    Z1 = sch.dendrogram(Y,leaf_label_func=llf,leaf_rotation=90)
    fig.show()
    fig.savefig('dendrogram.png')
    
    树状图:

    谢谢。

    1。
    fig.gca()。在这里设置ylim(-0.4,1.2)
    gca()
    返回当前的
    对象,因此您可以给它一个名称

    ax=fig.gca()
    ax.set_ylim(-0.4,ax.get_ylim()[1])
    
  • 您可以使用修剪树状图并获得簇。 要以0.4的距离修剪,请执行以下操作:

    clusters=sch.fcluster(Y,t=0.4,标准为‘距离’)

  • 结果数组(
    clusters
    )包含数据中每个观测值的群集标签。可以使用以下命令写入阵列:

    np.savetxt('clusters.txt',clusters,delimiter=',')


  • 由于轴的原因,显示边框。因此,可以使用以下命令删除边框:

    fig = plt.figure(figsize=(10, 8))
    ax2 = fig.add_axes([0.3, 0.71, 0.6, 0.2])
    Y = sch.linkage(D, method='ward')
    Z2 = sch.dendrogram(Y)
    ax2.set_xticks([])
    ax2.set_yticks([])
    ax2.axis('off')
    
    ax.axis('off')
    隐藏边框