簡體   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