☰
Origin绘制网络拓扑图完全指南:从数据整理到精美出图
2026/10/3 4:10:14 网站建设 项目流程

网络图这玩意儿,听起来挺高大上,其实就是一堆点(节点)和连接它们的线(边)。我最早接触是在做通信网络仿真的时候,导师丢给我一张拓扑图,让我分析节点连通性。我当时就在想,这种图要画得清楚、画得能给论文用,什么样的工具最靠谱?

有人可能会说,用Python的networkx,或者Gephi,再不行用Visio硬画。这些我后来都折腾过,各有各的坑。Python要写脚本,改个样式还得查文档;Gephi做社交网络分析很厉害,但画工程类拓扑图总觉得界面太“学术”,线条也不够干净;Visio手动画倒是快,但数据一变,图就得重画,一点都不“自动化”。后来在Origin里意外发现,它自带的绘图功能完全能胜任网络图的绘制,而且跟论文出图的风格高度统一,不用再来回切换软件。

这篇文章我想用一种“手把手带着走”的方式来写,不光是告诉你点哪个按钮,还会把每一步背后的逻辑讲清楚,比如为什么数据要这样排、为什么线宽要这么处理。如果你也想在Origin里画出一张漂亮的网络拓扑图、关系图或者路径图,那你来对地方了,这篇文章可以帮你省下不少摸索的时间。

1. 先弄清楚网络图的本质:节点和边才是主角

在打开Origin之前,先花一分钟把网络图的结构在脑子里理清楚。不管你的应用场景是社交网络、通信链路还是流程依赖,一张网络图说白了就只有两种基本元素:

  • 节点(Node):表示实体,比如路由器、交换机、人,或者一个变量。
  • 边(Edge):表示关系,比如两台设备之间的网线连接,或者两个人之间的朋友关系。

理解了这两点,Origin里的作图逻辑就清晰了:节点就是散点图中的点,边就是连接这些点的线段。这么一想,很多操作就顺了。

1.1 为什么用Origin画网络图而不是其他专业软件

Origin在科研绘图领域的地位不用多说,绝大多数理工科学生对它的印象是“处理实验数据、画XY散点图、柱状图、拟合曲线”。但实际上,它的散点图+线段图组合起来,完全能够覆盖网络图的绘制需求。

拿我之前画过的一张企业园区网络拓扑图来说,节点大概30多个,链路40多条。规模不大,但涉及不同类型的设备(核心交换机、接入交换机、服务器、防火墙),还需要区分不同链路的带宽等级。用Gephi也能做,但Gephi导出的矢量图在某些期刊的排版环境里格式兼容性很微妙,经常需要调整边框和字体。在Origin里画,出图风格跟论文里其他图表保持一致,字体的选择、坐标轴样式、线型粗细全都在同一个环境里控制,省事不少。

1.2 网络图的类别差异:无向图、有向图在Origin里怎么区分

这里顺手提一嘴有向图和无向图的区别,因为后面操作步骤里会涉及。

  • 无向图:A连到B,B连到A,线没有箭头。比如局域网里两个交换机之间的链路通常画成无向边。
  • 有向图:A指向B,有箭头方向。比如数据流向、依赖关系,通常用带箭头的线表示。

在Origin里,画这两种图的区别只在于是否启用箭头端点。如果画的是有向图,只需要在线的属性设置里勾选“End Point”选择箭头样式即可。这个细节后面我会具体演示。

2. 数据整理方式:网络图作图前需要完成的3种数据结构

这是整个教程里最容易卡住人的环节,也是决定最终图能不能画成功的关键。不少人在Origin里画网络图失败,原因不在绘图操作,而是数据表结构摆错了。Origin的数据表结构比较“扁平”,它不像Gephi那样有专门的“节点表”和“边表”概念,所以我们需要把节点坐标和连接关系都摊开,整理成Origin认识的格式。

2.1 方案一:节点坐标表 + 连接关系表(最通用)

这是我个人强烈推荐的方式,它不仅直观,而且非常方便以后调整节点位置。你需要在Origin数据表里准备三个工作表(可以放在同一个Workbook里,用不同Sheet区分):

Sheet1: Nodes(节点坐标表)

XYLabel
00SwitchA
21SwitchB
13Server1
.........

这表示节点SwitchA放在坐标(0, 0)的位置,SwitchB放在(2, 1)的位置,Label列的数值最终显示为节点旁边标注的名字。

Sheet2: Edges(连接关系表)

StartEnd
SwitchASwitchB
SwitchAServer1
SwitchBServer1

这个表告诉Origin:要从SwitchA这个节点连一条线到SwitchB。

在作图时,先画Sheet1的散点,再在同一个图层里添加一条线图(Line Plot),用Sheet2的数据去连接。关键是如何让Origin知道“Start”和“End”对应到具体的X、Y坐标——这就需要用列属性来设置,我在第3章详细演示。

2.2 方案二:长表格格式(适合大规模自动布局)

如果你的节点数量非常多(比如50个以上),手动设定坐标会累死。这时候可以把坐标的计算交给Excel或Python,用代码生成每个节点的坐标,然后复制进Origin即可。

比如,你可以用Python的networkx库先计算好节点位置(比如spring_layout),导出成X、Y坐标列表,之后复制到Origin的Sheet1里。Origin只负责最终渲染,布局计算交给更专业的库来做,全是文本,纯手动。

2.3 方案三:纯邻接矩阵(需要额外转换)

还有的人习惯用邻接矩阵来记录连接关系,比如:

ABC
A011
B100
C100

这种格式在学术论文的附录里很常见,但不能直接导入Origin用于画网络图。如果手头数据是这种格式,建议先用Python或Excel公式将其转换成长表格/边表格式,转换逻辑很简单:逐行扫描矩阵,凡是值为1(或者不为0)的单元格,就生成一条从行名到列名的边记录。

3. Origin里从零开始的详细画图步骤(我实际跑过一遍)

这是本文的重头戏。我会按照我在实际项目里的操作顺序,一步步带着你完成一张带节点名称、连线和不同线宽的典型网络图。这里我以Origin 2021版界面为例,中文版操作路径基本一致,老版本稍微找一下对应的菜单就行。

3.1 建立节点坐标表

打开Origin,新建工作簿。把Sheet1改名为“Nodes”,然后按下表输入数据。注意:X和Y是节点坐标,Label是节点的显示名称。坐标值代表什么意思?想象你在Origin的绘图坐标系里铺开一张虚拟画布,画布左下角是(0,0),所有的节点就是这张画布上的点。你要做的就是把每个节点的位置安排清楚。

为了演示,我用一个5节点的简单拓扑:

XYLabel
00PC1
21SwitchA
40PC2
23Server1
24R1

选中这三列,点击菜单栏的“绘图”——“基础2D图”——“散点图”。这时候你会看到5个孤零零的点出现在Graph窗口里,很正常,别慌。这些点就是网络图中的“节点”。

3.2 在表格里准备“边”的坐标数据

这是整个教程的核心,也是很多人绕不过去的坎。你可能会想,我直接在Graph窗口里把点连起来不就行了吗?可以,但如果节点有几十个、上百个,手动连线会让你崩溃,而且后期调整任一个节点位置时,所有手动画的线都会错位。

正确的做法是让“线”也成为数据的一部分。我们需要构造一个包含连线端点的坐标表。方法如下:

新建一个Sheet,命名为“Edges”。假设我有这样几条连接关系:

连接从PC1到SwitchA,SwitchA到PC2,SwitchA到Server1,Server1到R1。

那么Edges表需要这样列:

X1Y1X2Y2
0021
2140
2123
2324

这里的每一行代表一条边,X1、Y1是起始节点的坐标,X2、Y2是终止节点的坐标。我之所以不写节点名,是因为Origin在绘制连线时是不认识节点名的,它只能识别坐标。所以,这里需要手动把“节点名”和“坐标”对应起来,这是我的笨办法,但却是最可靠的。

3.3 添加边的图层

现在回到Graph窗口。右键点击图层左上角的“1”图标(也就是图层管理器),选择“图层内容”。在弹出的窗口里,将Edges表中的X1、Y1、X2、Y2作为新的数据轴添加进去。

具体来说:在图层内容对话框的左侧数据列表中,展开“Edges”工作簿,找到X1、Y1、X2、Y2。先选中X2、Y2,再按住Ctrl选中X1、Y1,然后点击向右的蓝色箭头,把它们添加到右侧绘图列表。关闭对话框。

这个时候你可能发现图还是没变化,或者线是乱七八糟的。不要急,还有一个关键设置:在图层的绘图列表中,那条代表边的数据系列默认可能是以“散点图”方式绘制的。右键打开“绘图细节”对话框,在“线条”选项卡里,勾选“连接线”,把“样式”设置为“直线”,线宽可以你自己定。这样,坐标点之间才会以直线连接,形成网络的边。

之所以X1、Y1和X2、Y2要放在同一行,是因为Origin的线图默认每行就是一条曲线的起点和终点。

3.4 边的粗细、颜色如何反映链路带宽

到了这个阶段,基础网络图已经出来了。但如果所有边都一样粗、一样颜色,图虽然能看,但信息密度太低。大多数实际场景里,两个节点之间的链路往往有不同的带宽或不同的重要程度。在工程报告里,我们通常会希望主干的链路画粗一点,普通接入链路细一点。

Origin里没有直接提供“根据一条单独列的值自动映射线宽”的功能,这里就需要用一点小技巧:为不同粗细的边分别建立数据系列。

举例来说,假设PC1到SwitchA的链路是千兆主干,需要画成粗线;SwitchA到PC2的链路是百兆接入,画成细线。那么刚才的Edges表可以拆成两个表(或者一个表里分两段):

  • Edges_Backbone(主干链路)表:X1、Y1、X2、Y2全部放千兆链路的数据
  • Edges_Access(接入链路)表:放百兆链路的数据

然后在图层里,对这两组数据分别添加线图,给主干链路线宽设置为3,接入链路线宽设置为1。这样一眼就能看出网络结构中哪些链路是核心,哪些是边缘,看图的效率完全不一样。

这个技巧也可以扩展到颜色上,比如把光纤链路用一种颜色,铜缆链路用另一种颜色。方法完全一样,就是拆数据系列。

3.5 添加节点标签:让每个点有名字

节点画出来了,但都长得一样,分不清谁是谁。这时候用Label列的数值来标注节点。右键点击图上的任意点,打开“绘图细节”,然后在“标签”选项卡里,勾选“启用”,在“标签形式”下拉框里选择“列”——选中“Label”列。字体大小一般设置为12或者14,黑体、宋体、Times New Roman都行,看你要投的期刊要求。

标签设置好后,就可以看到每个点旁边出现了PC1、SwitchA这样的文字。如果位置有重叠,可以在“标签”选项卡里调整偏移量,或者直接手动拖动标签框。

3.6 保存模板:避免下次重新配置

画网络图的整个流程,最耗时的是数据整理和图层配置,一旦配好,如果下次还要画类似的图,建议把当前Graph保存为模板。操作方法:选中当前Graph窗口,点击菜单“文件”——“保存模板为”,给它取个名字,比如“NetworkTopoTemplate.otpu”。

下次要画新网络时,只要把新的节点坐标表和边表数据填好,然后调用这个模板,图层设置、线型、标签样式、坐标轴格式统统自动套用,只需要改动数据内容,5分钟就能出一张新图,效率提升非常明显。

4. 网络图的颜值提升与可读性优化

图不仅仅是“画出来”,还要“看得懂”。我在实际做项目的过程里,总结了一些提高网络图可读性的方法,效果显著,下面挑几种最实用的讲。

4.1 箭头方向怎么加:区分流量和数据走向

回到第1章提过的有向图。如果你画的网络图需要展示数据流向(比如数据库主从复制、请求调用链路),边就要带上方向。选中那条边,打开“绘图细节”——“线条”选项卡,在“箭头”相关设置中找到“结束点”(End Point),选择“箭头”,调整箭头大小。这么一弄,图上的每条边就有了指向性。

4.2 颜色分组:按设备类型着色

节点可以按功能类型着色。例如:

  • 路由器/交换机:蓝色
  • 服务器:绿色
  • 终端PC:灰色

这个操作同样在“绘图细节”——“符号”——“填充颜色”里完成。如果节点数量少,直接手动改;如果节点数量多,建议在数据表里加一个“Color”列,填上颜色名或数值,然后在“填充颜色”选项中选择“按列”——选中这个“Color”列,颜色就自动映射了。

4.3 节点模糊和坐标轴隐藏的细节处理

网络图和普通学术图看起来不一样的地方在于,它通常不需要显示坐标轴和刻度线。默认绘制的散点图是会显示X轴、Y轴以及刻度文字的,画网络图时强烈建议把这些都隐藏掉。

操作:双击X坐标轴,打开坐标轴对话框,为什么Origin画网络图要处理“点与线”的图层优先级?

其实很多新手不知道。如果你在添加边之前先选中所有点,然后直接作图,由于线和点是同一个图层里的不同数据系列,绘图顺序不好控制时,边可能会被节点盖住,或者节点被边盖住。Origin 2021之后的版本支持“数据绘制顺序”调整,右键点击Graph窗口空白处,选择“绘图顺序”,把节点系列置顶、线条系列置底,这样节点符号就不会被线穿过去遮挡。

4.4 布局思路:手调与算法结合,避免线交叉

整个网络图最直观的美观度指标就是边的交叉数。交叉越少,图越清晰。Origin本身没有布局算法,所以需要自己想办法。

我的经验是先用简单的圆形布局打底:把所有节点均匀放在一个圆周上,这样大多数长链路之间的关系会比较清晰,然后再手动微调。具体做法是:如果节点数为n,每个节点的角度是360/n度的整数倍,坐标按照cos、sin来计算。这个可以用Excel快速生成坐标。

如果节点数据特别多,我建议还是先用Python的networkx库算好spring_layout或circular_layout,导出坐标后粘贴到Origin里。这不是绕道,而是把最适合的工具用在最合适的环节。其实这引出一个问题:同类的几款做图工具,我简单对比一下,你能更清楚自己该用哪个。

工具优点缺点适用场景
Origin出图风格统一,后期修改方便,与数据表联动强自身无布局算法,手动布局工作量大小规模(10~50节点)、工程报告与论文插图
Python networkx + matplotlib布局算法丰富,大规模处理能力强需要编程,样式调整麻烦节点超多(100+)、复杂网络分析
Gephi交互式可视化,社区检测、度分布等分析一键出图导出到论文时格式常需重调社交网络、文本共现关系分析
Visio纯手工绘制,控件丰富数据驱动能力差,改数据就得重画快速话术示意图、现场简易拓扑

从这个对比能看出,Origin更适合数据已然结构化、且对成品格式有较高要求的场景。你要是只需要一张示意图,Visio就够了;但你要是需要根据实时数据不断调整图,那Origin才是正路。

5. Origin绘制网络图时的高频问题与排查思路

画网络图的过程中,你会遇到各种奇怪的问题。这些问题的根因大多隐藏在数据格式和列属性里,下面是我在实际使用中踩过的坑,以及对应的排查和解决方案。

5.1 节点数据与连线数据不在同一坐标系中,导致线飘到天边

场景描述:节点画出来了,但一添加边,线不知道跑哪去了,或者线全都纠结在图的角落。

原因分析:Origin在绘图时,如果不同数据系列的X、Y列范围差异过大,会自动调整坐标范围。例如节点的X范围在0~4,Y范围0~4,但Edges表里如果误填了坐标为10、20或者错把节点名当数字填进去,图的范围就会瞬间被拉伸到很大,看起来点就缩成了角落里的小块。

排查方法:双击坐标轴,检查X轴和Y轴的实际范围。如果范围异常,先改回节点坐标的范围,然后仔细检查Edges表的坐标数值,逐行对比起始和终止坐标与节点表的对应关系。

5.2 新画的线段全部堆在原点,是列指定不完整

场景描述:添加边图层时,线全都从(0,0)出发,或全部重叠在一起。

原因分析:Origin的线图默认把工作表里第一列作为X,第二列作为Y。如果你的Edges表列顺序是X1、Y1、X2、Y2,在添加绘图数据时没指定好“X2, Y2”列作为终点坐标,或者只拖入了X1, Y1,那么这些点会被当作一条曲线的连续点,在图上绘制成一条没有实际意义的折线,看起来就像所有线段混在一起。

排查方法:在图层内容窗口中,确认边数据的绘图设置。尤其是在“绘图细节”里,检查每个边缘数据系列“X”和“Y”关联的是否正确。正确情况应该是:起始点和终止点各作为一条直线段的端点,由两个数据点组成一条独立的线。

5.3 打开文件时显示没有窗口或图形丢失

场景描述:保存的Origin文件(.opju)再次打开时,明明表格里还有数据,但Graph窗口不见了。

原因分析:这个情况在多个Origin版本中出现,并在搜索热词中也有体现。多数是因为Graph窗口未被锁定为“显示图纸窗口”,或者工作簿关联异常。部分情况下,是因为上次关闭时没有正常退出,导致Graph窗口没有被持久化到工作簿中。

排查方法:打开文件后,在左侧“项目资源管理器”(Project Explorer)中看是否有名为“Graph1”或自定义名称的条目。如果有但没显示出来,双击即可。如果压根没有,那就只能在数据表里重新绘图,所以养成随手保存模板的习惯,非常关键。

另外有几个在搜索热词里出现的高频问题值得一并解决:

  • Origin出现demo水印:这个问题通常出现在使用未正确激活的安装包时。解决办法是检查许可证文件是否放置到安装目录的指定位置,并确保以管理员身份运行,重新激活后水印会消失。
  • 图例横向排列:双击图例,打开“图例”属性窗口,在“布局”选项卡里修改方向,选择“水平”排列即可。这个在新版Origin里做的很方便。
  • 如何让两条线分别对应于两个Y轴:这在双Y轴图中常用。方法是先在数据表中准备一个X列和两个Y列,选中数据后点击“绘图”——“多面板/多轴”——“双Y轴”即可。
  • 如何设置小数点位数:在坐标轴的“刻度线标签”选项卡里,设置“小数位数”为你需要的位数即可,图表中的所有数字都会统一修改。
  • Origin修改默认字体:“工具”——“选项”——“文本字体”中修改,最好一次性把终点文本字体也改了,不然每次新建图都得重新设置一遍。

5.4 节点标签显示不全或被截断

场景描述:节点的标签名称比较长,比如“Core-Switch-01”,在图上显示时被截断或者显示不全。

解决办法:在“绘图细节”——“标签”选项卡里,把“自动调整大小”取消勾选,手动增加标签框的宽度;或者把标签字体稍微调小一点,这样相对图面就不会显得拥挤。

如果标签文字实在太多,还有一个处理技巧:给Label列设置成两行文字,比如在Excel里用“核心交换机\n01”这样的换行符,Origin会识别并把标签显示成两行。这个技巧在画复杂拓扑图时很实用。

6. 一个完整实例:从Excel数据到Origin成品图的全流程

前面讲了很多理论,这里用一个端到端的实例来收尾。假设我们有一个小型教学实验网络的拓扑数据,需要通过Origin画出来,并用于实验报告。节点一共6个:一个核心交换机(Core-SW)、两个接入交换机(ACC-SW1、ACC-SW2)、两台PC、一台服务器。连接关系如下:

  • Core-SW 与 ACC-SW1 相连
  • Core-SW 与 ACC-SW2 相连
  • Core-SW 与 Server 相连
  • ACC-SW1 与 PC1 相连
  • ACC-SW2 与 PC2 相连

主干链路需要加粗表示。

第一步,在Excel或Origin表里整理好坐标。

我习惯把这些节点按照层次结构布置:核心交换机在中间,接入交换机在左右两翼,PC在下方,服务器在上方。坐标如下:

LabelXY
Core-SW33
ACC-SW112
ACC-SW252
PC110
PC250
Server35

第二步,整理边表。主干链路(Core-SW到ACC-SW1和ACC-SW2、Core-SW到Server)放一个Part,接入链路(ACC-SW1到PC1,ACC-SW2到PC2)放另一个Part,分别存储,便于设置不同粗细。

第三部,在Origin里按第3章的步骤添加散点图、标签、边图层。

作图之后就会得到一张带层次感的实验网络拓扑图。这时候如果你切换一下主题,比如换成打印出版风格,图片立刻就是可以直接贴进实验报告的标准格式。

第四步,导出图片。右键点击图形窗口,选择“导出图形”,格式建议选“TIFF”或“EMF”。期刊投稿用TIFF,Word文档用EMF矢量图可以保证清晰度。分辨率设300 dpi或以上。

这整套流程,从数据准备到导出成品图,我实际用时控制在大约15分钟。当然前提是已经保存好模板,第二次以后基本就是改数据和坐标。

7. 实操中容易忽略的几个细节设置

最后这部分,想集中谈一下实操中“知道但容易忘”的设置。这些都是我在无数次出图之后才沉淀下来的经验。

7.1 连接线的端点和拐角样式

网络图的线条有时需要区分链路类型,比如虚线代表无线链路,实线代表有线链路。在“线条”选项卡里设置“样式”即可。还有一个小细节:线条的“连接”方式,如果选择“曲线”会带有一定的曲率,看起来更柔和;选择“直线”则更符合工程绘图的规范。

7.2 节点符号内部颜色和边框可以分开控制

Origin的散点图节点(符号)可以设置填充色和边框色。这很实用,比如填充色表示设备类型,边框色表示设备状态(红色边框表示告警、绿色表示正常),信息一下就丰富了很多。

7.3 工作簿的列属性设置

我给新接触Origin的读者一个最重要的建议:画图之前一定先选中列,右键设置列属性为“X”或“Y”。尤其是当你的工作簿里有多组数据时,如果不明确指定列属性,Origin经常会把第一列默认为X,其他都当成Y,导致画出来的图一个轴不对。网络图这种需要多数据系列叠加的场景,很容易出现这个问题。

7.4 不要忽视坐标轴的长宽比

这个问题在网络上几乎没人提到,但我认为它很重要。网络图不像函数图那样强调坐标的真实比例,但如果横纵坐标轴的刻度单位不一样(比如X轴0~6、Y轴0~3),节点之间的距离就会被压缩,导致视觉上连线角度扭曲。建议双击坐标轴,把坐标轴的显示范围手动锁定成“应用相同的比例”或直接调整纵横比例,使图看起来比较协调。

让我用数字举个例子:我上面实例中节点X坐标范围是1~5,Y范围是0~5。如果默认坐标轴范围刚好是这样,那矩形画布会压扁这个图。你可以通过双击坐标轴,在“刻度”选项卡里把“水平”和“垂直”的单位长度比例调成一致,图看起来就舒服多了。

7.5 对模板的二次修改:设置默认线宽和字体

如果多次使用自己的模板,建议花点时间把线宽、字体、图例格式统一改成自己常用的格式,然后再次保存模板。这样每次作图、导出,出图风格不会有变化,尤其是同一篇论文里的多张网络图,风格统一会非常加分。

我在最开始接触网络图时,也走了不少弯路,最开始的图,节点坐标乱得一塌糊涂,连线更是惨不忍睹。后来总结出来这套方法,才发现网络图在Origin里的本质仍然是数据可视化——关键不是软件功能不够,而是数据组织形式对不对。只要把节点坐标和边的关系表整理清楚,剩下的工作就是把表格变成图形,再按需调整细节。希望这篇文章能让你少走一些弯路,直接画出自己满意的网络图。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询