【发布时间】:2021-05-16 14:46:55
【问题描述】:
我创建了一个如下图所示的图表。但是,我想按与头部 (A) 的最短距离分层排列图形。换句话说:C、B、D、E 都应该在同一个级别并且水平对齐,因为它们都离 A 有 1 个边(最短路径)。那么,F、G、H 应该在下一个水平,因为它们各有 2 个边缘,等等。
我喜欢图表的外观,所以解决方案最好保持这种可视化风格。
import matplotlib.pyplot as plt
import networkx as nx
import pydot
from networkx.drawing.nx_pydot import graphviz_layout
from IPython.display import Image, display
G=nx.Graph()
G.add_edges_from([
('A','B'),
('A','C'),
('A','E'),
('A','D'),
('B','C'),
('B','F'),
('C','F'),
('D','H'),
('D','G'),
('E','H'),
('F','I'),
('G','I'),
('G','J'),
('H','J'),
('I','K'),
('J','K')
])
pdot = nx.drawing.nx_pydot.to_pydot(G)
graph = Image(pdot.create_png())
display(graph)
【问题讨论】:
标签: python networkx graphviz pydot