python画多层网络_在pymn中修改多层网络图
发布日期:2021-06-24 10:03:08 浏览次数:4 分类:技术文章

本文共 971 字,大约阅读时间需要 3 分钟。

这里有一个解决方案,您只使用networkx来创建多层图,并且您可以自己计算节点位置。在

为了解释这个问题,我们随机创建了一个由30个节点组成的小图。在

层是具有附加属性的子图:(x,y)坐标和颜色。

坐标用于在二维网格中相对定位图层。在import networkx as nx

# create a random graph of 30 nodes

graph = nx.fast_gnp_random_graph(30, .2, seed=2019)

# Layers have coordinates and colors

layers = [

(nx.Graph(), (0, 0), "#ffaaaa"),

(nx.Graph(), (0, 1), "#aaffaa"),

(nx.Graph(), (0, 2), "#aaaaff"),

(nx.Graph(), (1, 2), "#ffa500"),

]

每个层都填充了主图形的节点。

在这里,我们决定将节点列表分成不同的范围(图中节点的开始和结束索引)。在

每个节点的颜色存储在颜色映射中。

此变量将在稍后的图形绘制过程中使用。在

^{pr2}$

然后,我们可以计算出每个节点的位置。

根据层坐标移动节点位置。在# Calculate and move the nodes position

all_pos = {}

for layer, (sx, sy), color in layers:

pos = nx.circular_layout(layer, scale=2) # or spring_layout...

for node in pos:

all_pos[node] = pos[node]

all_pos[node] += (10 * sx, 10 * sy)

我们现在可以绘制图表:import matplotlib.pyplot as plt

# Draw and display the graph

nx.draw(graph, all_pos, node_size=500, node_color=color_map, with_labels=True)

plt.show()

结果如下:

66d26432f80efb9ca879b04333fee0e6.png

当然,您可以使用三维栅格并使用投影来进行类似于三维的预览。在

转载地址:https://blog.csdn.net/weixin_31990755/article/details/113514604 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:excel mysql在线库存_excel如何制作进货销售库存表
下一篇:python参数验证_参数验证,Python中的最佳实践

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月21日 15时32分32秒