9

我已经实现了一种算法来解决图中的聚类问题。我使用 python 库“python-graph”来表示图形。现在,在我计算的每一步(算法是迭代的)我必须绘制树状图的一部分。事实上,该算法是分裂的,从原始图开始计算集群。现在,我不知道用什么来绘制树状图(有人建议使用 PIL,但我正在寻找简单的东西,但我不知道如何使用 PIL)......你能建议一些东西并告诉我如何用它做情节吗?

注意:我阅读了其他问题,但似乎一切都使用使用自动计算集群的方法......这不是我想要的:我需要手动绘制树状图或至少找到一种方法来表示计算的集群被绘制。

谢谢!

4

4 回答 4

3

可以在这里找到实现scipy dendrogram的代码,这个简单的实现将帮助您继续前进。

于 2011-06-26T14:04:46.787 回答
3

也许另一种解决方案可能是这个: http ://ete.cgenomics.org/ 我建议您从主要帮助 pdf 开始: http ://ete.cgenomics.org/releases/ete2/doc/ete_tutorial.pdf

于 2011-06-26T17:40:34.040 回答
3

ETE python 工具包为您提供了许多绘制树的可能性。绘图引擎允许编程树渲染。树可以绘制为 PNG 或 SVG 图像。树状图可以表示为矩形或圆形树。

虽然 ETE 通常用于处理系统发育树,但它也提供了一个聚类模块,具有几种特殊的预定义可视化模式。

在http://packages.python.org/ete2/tutorial/tutorial_drawing.html查看一些示例

于 2011-12-13T14:53:51.990 回答
1

您可以在 scipy dendrogram 中使用绘图功能。为此,您需要生成与 scipy dendrogram 输出相同的数据。例子:

from scipy.cluster.hierarchy import dendrogram,  _plot_dendrogram
# Generate data for plot without plotting:
ddata = dendrogram(linked_data, no_plot=True)  

MaxVerticalAxis = 120  # You can choose max value or take it from ddata["ddcoord"]

#Plotting command:
_plot_dendrogram(ddata["icoord"], ddata["dcoord"], ddata["ivl"], 30,20, MaxVerticalAxis,  "top", False, ddata["color_list"], leaf_font_size=None, leaf_rotation=None, contraction_marks=None, ax=None, above_threshold_color='C0')
于 2020-05-05T22:29:55.970 回答