【问题标题】:Draw dendrogram in python manually手动在python中绘制树状图
【发布时间】:2011-06-26 13:57:35
【问题描述】:

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

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

谢谢!

【问题讨论】:

    标签: python python-imaging-library dendrogram


    【解决方案1】:

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

    【讨论】:

    • 很难找到方法,要查看很多代码,我仍然无法弄清楚如何在生成树状图时绘制它...定义图像并不容易大小不知道最终结果。我认为更好的解决方案是创建树,以某种方式表示它并找到一个函数来绘制它。见这里:stackoverflow.com/questions/5957625/…
    • @Raffo:你检查过详细的方式gist.github.com/846567吗?恕我直言,这非常简单,您应该可以很容易地从中提取出您真正需要的东西。谢谢
    • 代码我得挖一点,没仔细看.. 刚看到几乎没有cmets..
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        【解决方案4】:

        您可以在 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')
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-06-07
          • 1970-01-01
          • 1970-01-01
          • 2015-05-21
          • 2019-09-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多