我编写了一个算法来实现dijkstra的算法。这是一个数学复习游戏,我正在制作作为我的a水平课程的一部分。在
我有这个数据:
Vertices: {'M', 'Y', 'X', 'C', 'F', 'Q'}
Edges: defaultdict(<class 'list'>, {'X': ['Y'], 'C': ['M'], 'M': ['C', 'F', 'Y'], 'Q': ['F'], 'Y': ['X', 'M'], 'F': ['M', 'Q']})
Weights: {('M', 'C'): 44, ('Q', 'F'): 27, ('Y', 'X'): 42, ('X', 'Y'): 42, ('Y', 'M'): 6, ('M', 'F'): 9, ('M', 'Y'): 6, ('F', 'Q'): 27, ('F', 'M'): 9, ('C', 'M'): 44}
这些值是随机的,所以每次都不同。在
我可以用什么来可视化网络以使其更清晰,比如节点(顶点)和弧(边)?或者,有没有一种方法可以使用类似print("o----o")
之类的打印语句来可视化它。在
看看networkx、plot.ly、或{a3}。我不能推荐一些基于文本的ASCII艺术,比如可视化。使用一个精心设计的软件包可以给你更多的自由,也可以处理更复杂的数据,而可视化并不容易设置。在
一个带有
networkx
包的示例。我们需要您提供的Weights
来构建图。在布局
代码从此Tutorial by Aric Hagberg和answer by Marcus Müller修改。在
您可以创建一个类
Network
,用顶点表示每条边,并为自定义可视化创建__repr__
方法:输出:
^{pr2}$白色它远远不是教科书上的表现,它确实给出了基本思想。如果您正在寻找更专业的图表,请参阅下面@mattmilten的答案提供的链接。在
相关问题 更多 >
编程相关推荐