簡體   English   中英

networkx draw_networkx_edges capstyle

[英]networkx draw_networkx_edges capstyle

通過(例如) draw_networkx_edges繪制networkx邊緣時,是否有人知道是否可以對線屬性進行細粒度控制? 我想控制solid_capstylesolid_joinstyle這一行,它們是(matplotlib) Line2D屬性。

>>> import networkx as nx
>>> import matplotlib.pyplot as plt
>>> G = nx.dodecahedral_graph()
>>> edges = nx.draw_networkx_edges(G, pos=nx.spring_layout(G), width=7)
>>> plt.show()

在上面的例子中,邊緣之間存在“間隙”,我想通過控制capstyle隱藏它們。 我想要以恰當的大小添加節點以填充間隙,但是我最終繪圖中的邊緣是彩色的,因此添加節點不會削減它。 我無法從文檔中找出或查看edges.properties()如何做我想做的事...任何建議?

卡森

看起來你無法在matplotlib線集上設置capstyle。

但是你可以使用Line2D對象創建自己的邊集合,它允許你控制capstyle:

import networkx as nx
import matplotlib.pyplot as plt
from matplotlib.lines import Line2D
G = nx.dodecahedral_graph()
pos = nx.spring_layout(G)
ax = plt.gca()
for u,v in G.edges():
    x = [pos[u][0],pos[v][0]]
    y = [pos[u][1],pos[v][1]]
    l = Line2D(x,y,linewidth=8,solid_capstyle='round')
    ax.add_line(l)
ax.autoscale()
plt.show()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM