首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在‘ete3’树上给树叶着色?(Python 3)

如何在‘ete3’树上给树叶着色?(Python 3)
EN

Stack Overflow用户
提问于 2016-09-08 00:34:50
回答 1查看 2K关注 0票数 3

我刚开始使用ete3,它太棒了。

ete3 如何使用颜色字典对树对象的叶子着色?I创建"c":None是因为我不希望c出现。

我想有更好的控制树渲染,但我不知道具体如何做。

我看到了对象,但我认为这是针对实际节点的。看起来这个对象是我所需要的,但我不知道如何使用它。所有的例子正在添加标签。

代码语言:javascript
复制
# Build Tree
tree = ete3.Tree( "((a,b),c);" )
# Leaf mapping
D_leaf_color = {"a":"r", "b":"g","c":None}
# Set up style for circular tree
ts = ete3.TreeStyle()
ts.mode = "c"
# Draw Tree
tree.render("tree_test.png", dpi=300, w=500, tree_style=ts)

我看了这个问题,但它非常混乱:如何用固定的颜色对树节点进行着色?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-09 10:21:56

我会这样做:

代码语言:javascript
复制
from ete3 import Tree, TextFace, TreeStyle

# Build Tree
tree = Tree( "((a,b),c);" )
# Leaf mapping
D_leaf_color = {"a":"red", "b":"green"}
for node in tree.traverse():
    # Hide node circles
    node.img_style['size'] = 0
    if node.is_leaf():
        color = D_leaf_color.get(node.name, None)
        if color:
            name_face = TextFace(node.name, fgcolor=color, fsize=10)
            node.add_face(name_face, column=0, position='branch-right')
# Set up style for circular tree
ts = TreeStyle()
ts.mode = "c"
ts.scale = 10
# Disable the default tip names config
ts.show_leaf_name = False
ts.show_scale = False
# Draw Tree
tree.render("tree_test.png", dpi=300, w=500, tree_style=ts)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39380907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档