首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >networkx draw_networkx_edges capstyle

networkx draw_networkx_edges capstyle
EN

Stack Overflow用户
提问于 2012-07-03 22:00:27
回答 1查看 1.6K关注 0票数 6

有没有人知道在通过(例如) draw_networkx_edges绘制网络x边时,是否有可能对线条属性进行细粒度控制?我想控制行solid_capstylesolid_joinstyle,它们是(matplotlib) Line2D属性。

代码语言:javascript
复制
>>> 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()中找出如何做我想要做的事情……有什么建议吗?

卡森

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-04 21:26:18

看起来你不能在matplotlib行集合上设置capstyle。

但您可以使用Line2D对象创建自己的边集合,从而允许您控制capstyle:

代码语言:javascript
复制
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()
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11312579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档