Car*_*mer 6 python matplotlib networkx
有没有人知道在通过(例如)绘制networkx边缘时是否可以对线属性进行细粒度控制draw_networkx_edges?我想控制线solid_capstyle和solid_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()
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,边缘之间存在"间隙",我想通过控制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()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1531 次 |
| 最近记录: |