【发布时间】:2020-11-02 15:55:38
【问题描述】:
我正在尝试使用 networkx 构建一个图形,使用节点作为类对象。 我已经标记了节点,但我无法显示标记的边缘(实际上,根本不是边缘)。我期望通过在 Node 类中定义相邻节点来做到这一点。 我在下面显示我的代码:
# Packages
import random as rd
import networkx as nx
from matplotlib import pyplot as plt
# Classes
class Node:
def __init__(self, name):
self.name = name
self.state = rd.choice([-1, 0, 1])
self.neighbour = None
def get_name(self):
return self.name
def get_state(self):
return self.state
def get_neighbour(self):
return self.neighbour
# Nodes and neighbours
n1 = Node(1)
n2 = Node(2)
n3 = Node(3)
n1.neighbour = n2
n2.neighbour = n3
# Graph
G = nx.Graph()
G.add_node(n1.name)
G.add_node(n2.name)
G.add_node(n3.name)
pos = nx.spring_layout(G)
nx.draw_networkx_nodes(G, pos)
nx.draw_networkx_edges(G, pos)
nx.draw_networkx_labels(G, pos)
#nx.draw_spectral(G, with_labels=True) # I also tried this suggestion, but unsuccessfully
plt.savefig('jupyter_graph.png')
“状态”属性的原因是因为我想根据节点的状态更改节点的颜色(这是另一个问题)。 输出如下:
没有边缘出现。你能帮帮我吗?
【问题讨论】:
标签: python python-3.x graph label edges