Networkx:使图表更具可读性

问题描述

下午好。

我正在使用 A* 项目进行最短路径查找,为此我使用 osmnx 获取了一些 osm 数据。 当我想绘制图形时,即使更改了 spring_layout 的 k 参数,也无法打印出好的东西。 另外,我想打印我的节点标签和边缘标签,而不打印元组 {"weight",label}。 老实说,我没有找到如何使整个事情更清楚...

你有什么想法吗?

if __name__ == '__main__':
    Data = open('edgelist_bruxelles.csv',"r")
    Graphtype = nx.MultiDiGraph()

    G = nx.parse_edgelist(Data,delimiter=',',create_using=Graphtype,nodetype=int,data=(('weight',float),))
    
    pos = nx.spring_layout(G,10)
    
    nx.draw_networkx_nodes(G,pos,node_size=50)
    nx.draw_networkx_edge_labels(G,font_size=5)
    nx.draw_networkx_edges(G,edge_color='r',arrows=True)
    mp.show()

我现在拥有的

1

解决方法

您可以考虑以下几点:

  1. 添加标题,也许是一些解释节点和顶点代表什么的标签。
  2. 确定您要显示的有关数据的内容。目前,很难得出超出“许多关系”的结论。如果您想突出显示特定路径,则可以采用一种方法,仅显示关系或节点的较小子集。
  3. 您还可以使用颜色编码或类似方法使事物更加突出。例如,为不同的顶点值创建一个颜色图,看看是否有任何突出之处。
  4. 删除节点或故意对它们进行排序以减少蜘蛛网。