import networkx as nx
%matplotlib inline
import matplotlib.pyplot as plt
G2=nx.DiGraph()
G2.add_node(900,pos=(0,0))
G2.add_node(901,pos=(1,0))
G2.add_node(902,pos=(0,1))
G2.add_node(903,pos=(1,1))
G2.add_node(904,pos=(0,-1))
nodePos = nx.circular_layout(G2)
print("nodePos : \n" , nodePos)
nx.draw_networkx(G2, with_labels = True)
plt.show()
Приведенный выше код создает график, показанный ниже с позициями узлов:
nodePos:
{900: массив ([1., 0.]), 901: массив ([0.30901699, 0.95105652]), 902: массив ([- 0.80901699, 0.58778525]), 903: массив ([- 0.80901699, -0.58778525]), 904:массив ([0.30901699, -0.95105652])}
Вопросы:
a) Узлу 900 присваивается местоположение 0, 0, но для этого узла значение x больше 0,8 ... Аналогично, 904 задается y как -1, но система координат нигде не показывает -1.
b) nx.circular_layout () должен возвращать расположение узлов, и это то, что я напечатал в nodePos,Но я не понимаю значения, напечатанные в nodePos.Почему я вижу десятичные значения и то же самое с отрицательными значениями.
c) Моя цель - получить правильное расположение узлов, чтобы я мог взять его и рисовать график на своем конце в Qt / Java и т. Д....