gpt4 book ai didi

python - 如何给 `ete3` 树上的树叶上色? ( python 3)

转载 作者:太空宇宙 更新时间:2023-11-04 00:46:25 25 4
gpt4 key购买 nike

我刚开始使用 ete3,它很棒。

如何使用颜色字典为 ete3 Tree 对象的叶子着色? 我制作了 "c":None 因为我不知道' 想让 c 出现。

我想更好地控制树的渲染,但我不知道该怎么做。

我看到有NodeStyle objects但我认为这是针对实际节点的。看起来像这样TextFace object是我需要的,但我不知道如何使用它。 All the examples正在添加标签。

# 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)

enter image description here

我看了这个问题,但它很困惑: How to color tree nodes with fixed set of colors?

最佳答案

我会这样做:

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)

enter image description here

关于python - 如何给 `ete3` 树上的树叶上色? ( python 3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39380907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com