在networkx图中显示边缘属性值

时间:2017-02-17 07:20:41

标签: python graph networkx

扩展this question,是否可以只显示边缘属性的值?

例如,目前正在使用

paragraph = """
John is a computer scientist. John eats mango. John has an elder sister named Mary.
"""

mg.make_graph(paragraph) #This is my custom method, which creates the following graph

nx.draw(mg,pos=graphviz_layout(mg,prog='neato'),arrows=True,with_labels=True,alpha=0.5,linewidths=0.5,scale=2)
nx.draw_networkx_edge_labels(mg, pos = graphviz_layout(mg, prog='neato'),labels = nx.get_edge_attributes(mg,'label'))
plt.show()

我收到此Output

但是我只想要属性的值而不是键本身。 (单词'标签'不得打印。

我理解这是因为nx.get_edge_attributes(mg,'label')会返回字典,但在nx.get_edge_attributes(mg,'label').values()参数中使用labels,也不会导致图表只显示值。

我怎样才能做到这一点? (即,只有值必须打印在边缘而不是键标签)。

1 个答案:

答案 0 :(得分:-1)

如何处理以下内容:

---
- name: Install sudo-ldap
  apt: name=sudo-ldap state=present
  environment:
    SUDO_FORCE_REMOVE: "yes"

labels = {e: mg.get_edge_data(e[0], e[1])["label"] for e in mg.edges()} nx.draw_networkx_edge_labels(mg, pos=graphviz_layout(mg, prog='neato'), edge_labels=labels) 需要是一个字典,边缘作为键和标签,您希望将其绘制为值。 请注意,我将包含labels的参数设置为labels,因为它是版本1.10和2中的名称。但我认为如果您有旧版本,则可以进行调整。