Рисование меток, которые следуют за их краями на графике Networkx - PullRequest
1 голос
/ 12 марта 2020

Работая с Networkx, у меня есть несколько ребер, которые должны отображаться по-разному. Для этого я использую стиль соединения, некоторые ребра - прямые линии, другие - Arc3. Проблема в том, что у каждого ребра есть метка, и метка не следует за ребрами в этих стилях.

Я позаимствовал график в качестве примера:

#!/usr/bin/env python3

import networkx as nx
import matplotlib.pyplot as plt

# Graph data
names = ['A', 'B', 'C', 'D', 'E']
positions = [(0, 0), (0, 1), (1, 0), (0.5, 0.5), (1, 1)]
edges = [('A', 'B'), ('A', 'C'), ('A', 'D'), ('A', 'E'), ('D', 'A')]

# Matplotlib figure
plt.figure('My graph problem')

# Create graph
G = nx.MultiDiGraph(format='png', directed=True)

for index, name in enumerate(names):
    G.add_node(name, pos=positions[index])

labels = {}
for edge in edges:
    G.add_edge(edge[0], edge[1])
    labels[(edge[0], edge[1])] = '{} -> {}'.format(edge[0], edge[1])

layout = dict((n, G.node[n]["pos"]) for n in G.nodes())
nx.draw(G, pos=layout, with_labels=True, node_size=300, connectionstyle='Arc3, rad=0.3')

nx.draw_networkx_edge_labels(G, layout, edge_labels=labels, connectionstyle='Arc3, rad=0.3')
# Here is the problem : the labels will not follow the edges

plt.show()

Это может привести к показывает этот пример изображения : мы не уверены, какой край является меткой.

Есть ли способ нарисовать метки, которые следуют за их краями?

Спасибо

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