以下是一个简单的示例代码,用于标记图中的端点:
import networkx as nx
import matplotlib.pyplot as plt
# 创建一个有向图
G = nx.DiGraph()
# 添加边
G.add_edge('A', 'B')
G.add_edge('A', 'C')
G.add_edge('B', 'D')
G.add_edge('C', 'D')
G.add_edge('D', 'E')
# 绘制图形
pos = nx.spring_layout(G) # 为节点选择布局
nx.draw_networkx(G, pos=pos, with_labels=True)
# 标记端点
endpoints = [node for node, in_degree in G.in_degree() if in_degree == 0 or G.out_degree(node) == 0]
nx.draw_networkx_nodes(G, pos=pos, nodelist=endpoints, node_color='r', node_size=500)
# 显示图形
plt.axis('off')
plt.show()
此代码使用NetworkX库创建一个有向图,并添加一些边。然后,使用Spring布局将节点放置在平面上,并使用draw_networkx()
函数绘制图形。
接下来,使用列表推导式找到所有入度为0或出度为0的节点,并将其存储在endpoints
列表中。
最后,使用draw_networkx_nodes()
函数将端点标记为红色,并设置节点的大小为500。然后,调用plt.axis('off')
隐藏坐标轴,并调用plt.show()
显示图形。