gpt4 book ai didi

networkx - python : networkx: How to make node size auto-expand to fit the label

转载 作者:行者123 更新时间:2023-12-01 00:56:03 32 4
gpt4 key购买 nike

我正在使用 deap 符号回归示例问题中的这段代码,图形显示正常,但我希望节点扩展为圆角矩形以适合文本 自动 . (我不想只是通过反复试验来指定节点大小)。我该怎么做?

# show tree
import matplotlib.pyplot as plt
import networkx

nodes, edges, labels = gp.graph(bests[0])
graph = networkx.Graph()
graph.add_nodes_from(nodes)
graph.add_edges_from(edges)
pos = networkx.graphviz_layout(graph, prog="dot")

plt.figure(figsize=(7,7))
networkx.draw_networkx_nodes(graph, pos, node_size=900, node_color="w")
networkx.draw_networkx_edges(graph, pos)
networkx.draw_networkx_labels(graph, pos, labels)
plt.axis("off")
plt.show()

最佳答案

参数 node_size 接受标量和向量值。标量使所有节点的大小相等,而向量可帮助您在列表中指定要用于每个节点的单个值。如果您的节点 ID 是字符串,那么以下策略非常有效。
只需将大小参数更改为 networkx.draw_networkx_nodes 中的列表即可基于每个节点 id 的长度。选择 the_base_size适本地。

networkx.draw_networkx_nodes(graph, pos, 
node_size=[len(v) * the_base_size for v in graph.nodes()],
node_color="w")
您也可以将其调整为可以处理标签的情况。
***但是,我不确定在根据标签大小从列表中选择节点大小时是否会保留一对一的对应关系。一定要分享你的结果。我个人将它用于字符串节点 ID,并且效果很好。

关于networkx - python : networkx: How to make node size auto-expand to fit the label,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27878794/

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