使用Plotly Python绘制谱系图

3
我正在尝试使用Python绘制一个树状图,最好是使用Plotly。 我有一个数据集,其中包含各种对象的聚类。 我可以使用此数据集来生成所需的数据或至少推断。 然而,我不明白create_dendrogram的输入实际上是什么。文档只说它是一个ndarray-作为数组的观测矩阵。 我熟悉Numpy ndarrays,但我想知道数组必须包含什么。更具体地说,值X [i] [j]的意义是什么。 它似乎只是0到1之间的浮点数。 我已查看了Python Plotly的API文档,网址在这里 - https://plot.ly/python/dendrogram/
import plotly.plotly as py
from plotly.tools import FigureFactory as FF

import numpy as np

X = np.random.rand(10, 10)
fig = FF.create_dendrogram(X, orientation='left', labels=names)
py.iplot(fig, filename='dendrogram_with_labels')

如果有一种替代的、更直观的方法在Python中生成树状图,我也很想知道。我对此还很陌生,希望得到任何帮助。(如果需要重新表述问题,请告诉我!)

请查看http://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.dendrogram.html。 - Warren Weckesser
谢谢您,Warren。不过在scipy.cluster.hierarchy.dendrogram中使用的ndarray是一个4 x (n-1)的矩阵(ndarray),而在Plotly中则是一个n x n的ndarray。 - Achyudh Ram
使用ggplot2+dendextend+plotly,可以用R来完成这个任务。 - Tal Galili
1个回答

5
你可以将一个联动函数传递给create_dendrogram函数。例如:
from scipy.cluster.hierarchy import linkage

...

figure = FF.create_dendrogram(
    data_array, orientation='bottom', labels=id_label_list,
    linkagefun=lambda x: linkage(data_array, 'ward', metric='euclidean')
)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接