【问题标题】:How do I draw non-overlapping edge labels in networkx?如何在networkx中绘制不重叠的边缘标签?
【发布时间】:2016-04-10 09:29:35
【问题描述】:

如何在 networkx 中绘制不重叠的边缘标签?使用选项scale 看起来更好,但边缘标签仍然重叠,例如,

相关源码如下:

# build a graph
G.add_edge(u, v, r=value)

# plot the graph
pos = nx.spring_layout(G, scale=3)

nx.draw(G, pos)

edge_labels = nx.get_edge_attributes(G,'r')
nx.draw_networkx_edge_labels(G, pos, edge_labels = edge_labels)

plt.savefig(filename)

【问题讨论】:

    标签: python matplotlib networkx springlayout


    【解决方案1】:

    这里是 spring_layout 的 documentation。其中一个参数是k

    k (float (default=None)) – 节点之间的最佳距离。如果为 None,则距离设置为 1/sqrt(n),其中 n 是节点数。增加此值可将节点移得更远。

    所以用k=5/math.sqrt(G.order()) 或其他可以增加距离的值调用spring_layout

    【讨论】:

    • 谢谢。它不可扩展(大图看起来更糟)。使用其他图形可视化工具(例如 Graphviz)可能是一个很好的解决方案。
    猜你喜欢
    • 2015-12-30
    • 2020-06-24
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    • 2016-03-08
    • 2014-09-18
    • 1970-01-01
    • 2021-06-03
    相关资源
    最近更新 更多