基于Python的网络拓扑图绘制

最近写论文画了许多图,在这里记录一些。当然,如果仅仅是展示性图片的话也可以使用visio,但是这里我仍然想探究一下如何使用pyhon画出美观的网络拓扑图。

一、画出网络拓扑图

给出邻接矩阵,画出网络的拓扑图:

import networkx as nx
import matplotlib.pyplot as plt
import numpy as npG = nx.Graph()
Matrix = np.array([[0, 0, 1, 1, 1, 1],  # a[0, 0, 1, 1, 0, 1],  # b[1, 1, 0, 0, 1, 1],  # c[1,	1, 0, 0, 1, 1],  # d[1, 0, 1, 1, 0, 1],  # e[1, 1, 1, 1, 1, 0],])for i in range(len(Matrix)):for j in range(len(Matrix)):if Matrix[i, j] != 0:G.add_edge(i, j)pos = nx.random_layout(G)
nx.draw(G, node_size=50, node_color='black', edge_color='b', width=2)
plt.show()

效果如下:

也可以根据需求改变节点或链路的形状

pos = nx.random_layout(G)
# nx.draw(G, node_size=50, node_color='black', edge_color='b', width=2)
nx.draw_networkx_nodes(G, pos, node_shape='*', node_size=500, node_color='orange')#1800,100
nx.draw_networkx_edges(G, pos, edge_color='b', width=2, style='dashed')# solid|dashed|dotted, dashdot
plt.show()

效果如下:

 二、画出网络拓扑图,并对节点和链路进行表示

为了在论文中美观的表示出网络拓扑以及节点和链路的序号,也可以使用visio进行画图,但是这样会比较慢,所以试图寻找基于python的画图方法。

import networkx as nx
import matplotlib.pyplot as pltG = nx.Graph()
# 确定节点之间的链接关系(边),并对边进行编号(或标出边的权重)
G.add_edge(5, 1, weight=1)
G.add_edge(5, 3, weight=2)
G.add_edge(1, 2, weight=3)
G.add_edge(1, 3, weight=4)
G.add_edge(3, 2, weight=5)
G.add_edge(3, 4, weight=6)
G.add_edge(2, 4, weight=7)
G.add_edge(2, 6, weight=8)
G.add_edge(4, 6, weight=9)data = {(u, v): weight['weight'] for (u, v, weight) in G.edges(data=True)}
# 确定节点在图中的位置(画出来的图比较好看)
pos = {1: [0, 0],2: [5, 0],3: [0, -5],4: [5, -5],5: [-2.5, -2.5],6: [7.5, -2.5],}
# 对节点的颜色进行标注
color_map = ["#ffc20e"]#5
color_map.extend(["#ffc20e"])#1
color_map.extend(["#7bbfea"])#3
color_map.extend(["#7bbfea"])#2
color_map.extend(["#7fbfea"])#4
color_map.extend(["#7fbfea"])#6# 对链路的颜色进行标注
edge_map = ["#ffc20e"]
edge_map.extend(['black']*8)nx.draw_networkx_nodes(G, pos, node_size=500, node_color=color_map)#1800,100
nx.draw_networkx_edges(G, pos, width=3, edge_color=edge_map)#1,5
nx.draw_networkx_labels(G, pos, font_size=20)#40
nx.draw_networkx_edge_labels(G, pos, data, font_size=20)#30
plt.show()

效果如图所示:

 由于我们要尽可能做到论文中的图在只有黑白色时仍然不影响阅读,因此也可以对其中节点或链路的大小进行随意设置。

size_map = ([1000]*2)
size_map.extend([500]*4)edge_size = [6]
edge_size.extend([3]*8)nx.draw_networkx_nodes(G, pos, node_size=size_map, node_color=color_map)#1800,100
nx.draw_networkx_edges(G, pos, width=edge_size, edge_color=edge_map)#1,5
nx.draw_networkx_labels(G, pos, font_size=20)#40
nx.draw_networkx_edge_labels(G, pos, data, font_size=20)#30
plt.show()

最终效果展示如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/63010.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

认识网络、几种常用的网络拓扑图

交换协议: VLAN技术:虚拟局域网 STP技术:生成树协议 VRRP技术:虚拟路由冗余协议 VPN:虚拟专用网络 名词解释 路由协议:http、HTTPS、tcp、ip 静态路由配置 OSPF协议 RIP协议 ACL访问控制 什么是网络&…

快速读懂网络拓扑图

快速读懂网络拓扑图 几重常见的网络拓扑总线型拓扑简介优点缺点 环型拓扑简介优点缺点 星型拓扑简介优点缺点 网络层级机构节点结点链路通路 不同的连接线代表什么意思?不同颜色、粗细的直线代表什么意思?闪电线-串行链路 几重常见的网络拓扑 总线型拓扑…

盘点5款常用的网络拓扑图制作工具

网络拓扑能直观明了的展示网络中各网元之间的关系,极大方便运维人员对网络进行优化配置、故障排查等操作。那么这个专业性比较强的拓扑图,要用什么工具把它轻松,简便的画出来呢?现对市场5款主流的拓扑制作软件进行介绍&#xff1a…

网络拓扑图怎么画 详细教程

大数据时代,如何更好地去运营、呈现数据,并从其中发掘出更多信息成为了人们探索的方向。网络拓扑图就是一种非常有用的信息化图表,这种网状关系呈现出来的利器可以使我们把想要传递的信息更加清晰、有逻辑的呈现在别人的眼前。 1. 什么是网络…

网络拓扑图

转载自:https://blog.csdn.net/weixin_40792878/article/details/82555594 什么是拓扑结构?   首先我们来解释一下拓扑的含义,所谓“拓扑”就是把实体抽象成与其大小、形状无关的“点”,而把连接实体的线路抽象成“线”,进而…

【新手】网络拓扑图要这样画

网络拓扑设计分为单核心和双核心两种 1. 单核心网络拓扑设计(如图) (上图写的是路由器连接外网,也可以连接公司别的分支机构,比如现在是上海分公司,也可以用路由器和北京分公司相连,当然要借助…

关于网络拓扑图,你想知道的都在这

这篇文章,我将集中回答以下这四个问题: 网络拓扑图的定义网络拓扑图的分类网络拓扑图的设计规范网络拓扑图的绘制步骤 一、网络拓扑图的定义 在认识网络拓扑图前,我们先来了解下网络拓扑结构。 所谓网络拓扑结构,是指用传输媒…

作为程序员, 我如何使用ChatGPT来帮我写代码

从快速学习到调试程序, 甚至将繁琐的工作自动化。 我们每个人都渴望成功, 而获得成功的最有效的方式之一就是, 在尽可能短的时间内, 解决尽可能多的人的问题, 特别是大家都有的问题。 我们可以观察身边优秀的产品&…

只知道ChatGPT?这些AI工具同样值得收藏

B站|公众号:啥都会一点的研究生 人工智能革命带来了许多能够提高生产力和转变工作方式的工具,本期将重点介绍音频、视频、设计以及图像和数据清理中的顶级 AI 工具。 音视频类AI工具: VoicePen AI https://voicepen.ai:该工具可…

行情数据接口-美股版

一、美股历史数据API 1.数据列表 待完善补充 下载美股公司列表,分别是纳斯达克,纽交所,美国证券交易所,三个CSV文件 下载地址,纳斯达克官网:Company List: NASDAQ, NYSE, & AMEX Companies http:/…

彩票系统

**用c#简单实现彩票系统**首先它能实现哪些功能: 1.红球号码不能超过1~33,彩票号码不能重复; 2.随机产生一注彩票; 3.设奖及中奖 奖级表: 奖级 中奖说明 单注奖金 (前面数字代表红球数量、后面数字代表篮…

大乐透机选号码生产器

1、蓝色球5个,1~35 不能重复 2、红色球2个,1~12 不能重复 代码如下: public class demo {public static void main(String[] args) {System.out.println("现在时间为" LocalDateTime.now()",今天体彩大乐透的开…

如何理解单目视觉slam中尺寸漂移问题

最近学习了ORB_SLAM2中计算sim3变换,其中对什么是尺寸因子和尺寸漂移问题还存在一些知识盲区,因此查看了一些别人写的文章以及自己的理解整理了一下这个问题。(感觉自己的理解还不是非常的准确,如果有朋友发现我理解不对的地方&am…

微软推出 Hierarchical Transformer 实现更高准确率的语音评测

对于语言学习者来说,练习发音并获得及时准确的反馈,是提高口语水平的重要环节。多年来,微软一直深耕基于 Azure 认知服务的语音功能,不断优化语音评测[1]功能的底层技术,从准确率、流畅度、完整性和语音语调等方面&…

工作汇报PPT模板推荐

工作中我们难免少不了写各种各样的总结汇报,也会用到PPT。怎么写好一个让老板满意的工作汇报PPT呢?今天就给大家推荐PPT家园的工作汇报ppt模板。 隆重大气几何微立体风背景商务工作汇报PPT模板 简洁微立体风格,非常适合商务工作者的汇报ppt…

红色商务风季度工作总结汇报PPT模板

这是一套商务风季度工作总结汇报PPT模板.pptx共23张, 幻灯片模板使用了红色作为主色系,设置了丰富的动画效果,主要适用于通用行业,目录主要包括:上季度工作概述,工作完成情况,存在主要问题,下季度工作计划。 下载地址:商务风季度工作总结汇报PPT模板-行…

如何写好一份晋升PPT(附PPT模板)

又到了每年晋升述职的时间,在过去的 5、6 年里,我以评委身份参与了大量的晋升述职(主要是前端,也包括客户端和测试),也辅导了许多(100)组内外的同学,指导他们书写和完善 …

分享58个述职报告PPT模板,总有一款适合你

分享58个述职报告PPT模板,总有一款适合你 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下...,大家下载后可以看到。 链接:https://pan.baidu.com/s/1aGvoYXC4gEbKazjVRMQm3Q 提取码:r…

工作总结PPT怎么写?60套工作总结PPT模板:年度汇报、项目汇报,晋升述职

不要再做无用功了小伙伴们!在职场里,不管是经理还是老板,没事总想让我们做PPT汇报工作。月汇报、年度汇报、日常汇报、项目汇报,还有晋升述职、工作经验总结…总之就是数不胜数;俗话说得好:躲得了初一&…

【产品经理必备文档】述职报告/年终总结汇报ppt模板

今天和大家免费分享产品必备文档模板——产品经理述职文档(年终总结汇报)的ppt模板~~~ 【文档下载】 这个ppt模板可以在下方小程序里免费下载哦 【编写教程】 个人工作年终总结一般分成4部门:个人岗位职责、工作完成情况、年度经验总结、 1…