Как мне создать радиальный кластер, как в следующем примере кода на Python?

Я нашел несколько примеров о том, как создать эти точные иерархии (по крайней мере, я так считаю), как показано ниже stackoverflow.com/questions/2982929/ , которые отлично работают и почти выполняют то, что я ищу.

и почти выполняю то, что я ищу.

и почти выполняю то, что я ищу.

[EDIT] Вот упрощенная версия кода Пола , которая теперь должна быть проще для кого-то, чтобы помочь превратить это в радиальный кластер вместо текущей формы кластера

right structure, wrong display - needs to be a radial cluster

import scipy
import pylab
import scipy.cluster.hierarchy as sch

def fix_verts(ax, orient=1):
    for coll in ax.collections:
        for pth in coll.get_paths():
            vert = pth.vertices
            vert[1:3,orient] = scipy.average(vert[1:3,orient]) 

# Generate random features and distance matrix.
x = scipy.rand(40)
D = scipy.zeros([40,40])
for i in range(40):
    for j in range(40):
        D[i,j] = abs(x[i] - x[j])

fig = pylab.figure(figsize=(8,8))

# Compute and plot the dendrogram.
ax2 = fig.add_axes([0.3,0.71,0.6,0.2])
Y = sch.linkage(D, method='single')
Z2 = sch.dendrogram(Y)
ax2.set_xticks([])
ax2.set_yticks([])

fix_verts(ax2,0)
fig.savefig('test.png')

Но вместо древовидная структура, мне нужен радиальный кластер, как на следующих диаграммах.

enter image description hereradial cluster 1

10
задан Community 23 May 2017 в 12:24
поделиться