当先锋百科网

首页 1 2 3 4 5 6 7

Python语言凭借其强大的数据分析和科学计算能力,受到越来越多人的青睐。今天,我们来介绍如何用Python画出漂亮的树形图。

# 导入必要的库
import matplotlib.pyplot as plt
import networkx as nx
# 创建一个空的有向无环图
G = nx.DiGraph()
# 添加根节点
G.add_node('A')
# 添加第二层节点
G.add_node('B')
G.add_node('C')
G.add_edge('A', 'B')
G.add_edge('A', 'C')
# 添加第三层节点
G.add_node('D')
G.add_node('E')
G.add_node('F')
G.add_edge('B', 'D')
G.add_edge('C', 'E')
G.add_edge('C', 'F')
# 添加第四层节点
G.add_node('G')
G.add_node('H')
G.add_edge('D', 'G')
G.add_edge('D', 'H')
# 绘制树形图
pos = nx.bipartite_layout(G, ['A', 'B', 'C'])
nx.draw_networkx_nodes(G, pos, node_size=2000, nodelist=['A'], node_color='g')
nx.draw_networkx_nodes(G, pos, node_size=1000, nodelist=['B', 'C'], node_color='y')
nx.draw_networkx_nodes(G, pos, node_size=500, nodelist=['D', 'E', 'F'], node_color='r')
nx.draw_networkx_nodes(G, pos, node_size=250, nodelist=['G', 'H'], node_color='b')
nx.draw_networkx_edges(G, pos, arrows=True)
nx.draw_networkx_labels(G, pos, font_size=24, font_family='sans-serif')
plt.axis('off')
plt.show()

运行以上代码,即可得到一棵漂亮的树形图。你也可以根据自己的需要添加或删除节点,来画出符合自己需求的树形图。