使用python绘制二叉树(matplotlib + networkx)

您所在的位置:网站首页 turtle二叉树画珊瑚 使用python绘制二叉树(matplotlib + networkx)

使用python绘制二叉树(matplotlib + networkx)

2024-02-28 09:35| 来源: 网络整理| 查看: 265

import networkx as nx import matplotlib.pyplot as plt G = nx.DiGraph() G.add_node("start",subset=0) G.add_node("2",subset=1) G.add_node("3",subset=1) G.add_node("4",subset=1) G.add_node("5",subset=1) G.add_node("6",subset=1) G.add_node("7",subset=1) for i in range(2,8): G.add_edge("start",str(i)) G.add_edge( str(i), "end") G.add_node("end",subset=2) pos = nx.multipartite_layout(G) nx.draw_networkx(G,node_size=1000,pos=pos) plt.show()

 上面这段代码会生成像神经网络那样的层次连接图。draw_networkx的pos参数提供了图显示布局layout,multipartite_layout会根据图节点的subset将节点分成组然后对齐。

默认情形下,draw_networkx使用的是spring_layout。 if pos is None: pos = nx.drawing.spring_layout(G) # default to spring layout

(上面那张整齐的图会以诡异的方式,随机性地被撑开。spring_layout使用的是什么算法还没有认真研究过)

networkx 为图的显示提供了很多种layout,详见networkx\drawing\layout.py



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3