繁体   English   中英

networkx 在一条线上按弯曲边缘绘制节点

[英]networkx draw nodes on a line in order with curved edges

我想在一条线上绘制一组节点,它们之间有空格,对应于节点属性的差异(这里:节点进入系统的时间)。 然后我想在这些节点之间绘制弯曲的边缘。 这在networkx中可能吗?

我附上了我想要实现的布局草图。 在此处输入图像描述

您可以通过将节点位置 (x,y) 的字典传递给nx.draw函数来控制节点的位置(请参阅此处的文档)。 要将曲线添加到箭头,您可以在nx.draw函数中使用connectionstyle='arc3,rad=-0.7'rad为曲线取任何值)(请参阅此处的文档)。

请参见下面的示例:

import networkx as nx
import matplotlib.pyplot as plt

G=nx.DiGraph()
N_nodes=7

[G.add_node(i) for i in range(N_nodes)]

G.add_edge(0,1)
G.add_edge(2,4)
G.add_edge(2,5)

posx=[0,1,3,5,6,7,9]
posy=N_nodes*[0]
pos={i:[posx[i],posy[i]] for i in range(N_nodes)}

nx.draw(G,pos=pos,connectionstyle="arc3,rad=-0.7",edge_color='blue')
plt.ylim([-0.5,0.5])

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM