【问题标题】:NetworkX directed graph, no weights and self arcNetworkX 有向图,无权重和自弧
【发布时间】:2014-01-26 04:08:28
【问题描述】:

我想要一个从节点 1 到自身的自循环。我试过G.add_edge(1,1),但没有奏效。我的代码如下

import networkx as nx
import pylab

G = nx.DiGraph()

G.add_node(1,pos=(1,1))

G.add_node(2,pos=(0,0))
G.add_node(3,pos=(2,0))
G.add_edge(1,2)
G.add_edge(1,3)
G.add_edge(1,1)


pos=nx.get_node_attributes(G,'pos')
nx.draw(G,pos)

pylab.show()

【问题讨论】:

  • 您给了我们一份需求清单,但是您尝试过什么来解决您自己的问题?什么没有按您的预期工作?您了解您发布的代码吗?
  • 我没有发布我的代码和图片吗?
  • 您的代码 90% 是设置网络,然后从 nx 调用两个函数,删除其中一个将解决您的一个问题。如果您真诚地努力首先解决自己的问题,您将在这里获得更好的结果。
  • 我不明白我的努力有什么不诚实
  • 你有什么尝试删除边缘权重?什么不起作用?你试过把箭头放在有向边上吗?什么不起作用?您尝试过什么自循环?什么不起作用?您没有发布问题,而是发布了要求列表。这里的人往往很乐意帮助您解决问题,但不太愿意为您完成工作。

标签: python matplotlib networkx


【解决方案1】:

边缘就在那里——它只是不是由 NetworkX Matplotlib 绘图代码绘制的。 您可以使用 Graphviz:

import networkx as nx
import pylab

G = nx.DiGraph()

G.add_node(1,pos="100,100")

G.add_node(2,pos="0,0")
G.add_node(3,pos="200,0")
G.add_edge(1,2)
G.add_edge(1,3)
G.add_edge(1,1)

print G.edges(data=True)
# [(1, 1, {}), (1, 2, {}), (1, 3, {})]

nx.write_dot(G,'graph.dot')
# use -n to suppress node positioning (routes edges)
# run dot -n -Tpng graph.dot >graph.png

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    • 2022-11-23
    相关资源
    最近更新 更多