【问题标题】:Plot networkx with assigned coordinates用指定的坐标绘制 networkx
【发布时间】:2020-11-25 12:05:32
【问题描述】:

我正在尝试运行以下代码来绘制 networkx 图,但它给了我类型错误:列表索引必须是整数或切片,而不是 str。你能帮我解决这个问题吗?

pos = [[6.886709112999999, 50.50618938]]
nodes = ['866','144']
edges = [['866', '144']]

G = nx.Graph()
G.add_nodes_from(nodes)
G.add_edges_from(edges)
nx.draw_networkx(G, pos)
plt.show()

【问题讨论】:

    标签: python networkx


    【解决方案1】:

    如果您想为draw_networkx 指定位置,您应该提供位置字典 (x,y):

    pos (dictionary, optional) – 以节点为键、位置为值的字典。如果未指定,将计算弹簧布局定位。有关计算节点位置的函数,请参见 networkx.drawing.layout。

    您可以在此处 (how to plot a networkx graph using the (x,y) coordinates of the points list?) 查看最近的示例。 或者用你的小例子:

    import networkx as nx
    import matplotlib.pylab as plt
    
    pos = {'866':[6.886709112999999, 0], '144': [50.50618938, 0]}
    nodes = ['866','144']
    edges = [['866', '144']]
    
    G = nx.Graph()
    G.add_nodes_from(nodes)
    G.add_edges_from(edges)
    nx.draw_networkx(G, pos)
    plt.show()
    

    您观察到的类型错误可能是由于网络试图以节点为索引调用您的pos 列表,例如pos['866'].

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-05
      • 2021-03-07
      • 1970-01-01
      • 1970-01-01
      • 2013-06-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多