我实现了一种算法来解决图中的聚类问题。我使用python库"python图"来表示该图。现在,在我计算的每一步(算法是迭代的),我都必须绘制树状图的一部分。事实上,该算法是分裂的,从原始图开始计算聚类。现在,我不知道用什么来绘制树状图(有人建议使用PIL,但我正在寻找一些简单的东西,我也不知道如何使用PIL)。。。你能给我一些建议并告诉我如何用它来绘图吗?
注意:我读过其他问题,但似乎所有的问题都使用了使用集群自动计算的方法。。。这不是我想要的:我需要手动绘制树状图,或者至少找到一种方法来表示要绘制的聚类。
谢谢!
实现scipy树状图的代码可以在这里找到,这个简单的实现将帮助您继续前进。
也许还有其他解决方案:http://ete.cgenomics.org/我建议您开始使用主要帮助pdf:http://ete.cgenomics.org/releases/ete2/doc/ete_tutorial.pdf
ETE python工具包为您提供了许多绘制树的可能性。绘图引擎允许进行编程树渲染。树可以绘制为PNG或SVG图像。树状图可以表示为矩形或圆形树状图。
尽管ETE通常用于处理系统发育树,但它也提供了一个集群模块,具有几种特殊的预定义可视化模式。
查看上的一些示例http://packages.python.org/ete2/tutorial/tutorial_drawing.html
您可以在scipy树状图中使用绘图功能。为此,您需要生成与scipy树状图输出相同的数据。示例:
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')