Как заставить оси x и y появляться при использовании networkx и matplotlib? - PullRequest
0 голосов
/ 11 июля 2019

Привет, поэтому я пытался построить график, используя networkx и matplotlib, однако, мои оси x и y не отображаются, несмотря на то, что оси установлены на «on», а также добавлен предел x / y для оси.

Я пытался реализовать код других людей, чтобы увидеть, будет ли отображаться ось, но не повезло.

import networkx as nx
import matplotlib.pyplot as plt

G = nx.DiGraph()
G.add_edges_from(
        [('A', 'B'), ('A', 'C'), ('D', 'B'), ('E', 'C'), ('E', 'F'),
         ('B', 'H'), ('B', 'G'), ('B', 'F'), ('C', 'G')])

val_map = {'A': 1.0,
               'D': 0.5714285714285714,
               'H': 0.0}

values = [val_map.get(node, 0.25) for node in G.nodes()]

# Specify the edges you want here
red_edges = [('A', 'C'), ('E', 'C')]
edge_colours = ['black' if not edge in red_edges else 'red'
                    for edge in G.edges()]
black_edges = [edge for edge in G.edges() if edge not in red_edges]

# Need to create a layout when doing
# separate calls to draw nodes and edges
pos = nx.spring_layout(G)
nx.draw_networkx_nodes(G, pos, cmap=plt.get_cmap('jet'), 
node_color = values, node_size = 500)
nx.draw_networkx_labels(G, pos)
nx.draw_networkx_edges(G, pos, edgelist=red_edges, edge_color='r', arrows=True)
nx.draw_networkx_edges(G, pos, edgelist=black_edges, arrows=False)
plt.show()

Пример кода из другого потока: как рисовать ориентированные графы с использованием networkx в python?

Я даже попробовал его / ее код, который он предоставил, где я даже могу видеть на его скриншоте, что он может отображать ось, но с моей стороны я ничего не получаю.

Here is the output on my end Нет сообщения об ошибке.

1 Ответ

1 голос
/ 12 июля 2019

В некоторых предыдущих версиях networkx галочки и метки не были установлены. Теперь они - в основном потому, что числа на осях редко имеют какое-либо особое значение.

Но если они это сделают, вам нужно снова включить их.

fig, ax = plt.subplots()
nx.draw_networkx_nodes(..., ax=ax)

#...

ax.tick_params(left=True, bottom=True, labelleft=True, labelbottom=True)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...