很多做社会网络分析、文献计量或者知识图谱的朋友,第一次打开 Gephi 的时候都会卡在同一个地方:数据到底该怎么喂进去。软件界面看着挺唬人,布局算法一大堆,结果连个节点都画不出来。其实问题十有八九不在 Gephi 本身,而是卡在了数据准备这一步——尤其是手里只有 Excel 表格,不知道怎么把它变成 Gephi 能认的 CSV 文件。这篇内容就是把这个过程从头到尾拆开讲清楚,从 Excel 里怎么整理两列数据,到 CSV 编码怎么选,再到 Gephi 里点哪个按钮导入、导入后怎么调布局、怎么让图看起来不像一团毛线。适合完全没碰过 Gephi 的新手,也适合之前导数据失败过、想搞清楚到底哪里出问题的人。
1. 先搞清楚 Gephi 到底想吃什么样的数据
1.1 网络图的两个基本元素:节点和边
Gephi 画网络图,底层逻辑特别简单,就两个东西:节点(Node)和边(Edge)。节点就是图上的一个个圆点,边就是连接两个圆点的那条线。你给它一张"谁和谁有关系"的清单,它就能把图给你画出来。
拿最常见的场景举例:你有一份 Excel 表格,记录的是公司里哪些人合作过项目。A 和 B 合作过,B 和 C 合作过,A 和 C 也合作过。那 A、B、C 就是三个节点,三条合作关系就是三条边。Gephi 要的就是这种"成对关系"的数据。
所以你在 Excel 里整理数据的时候,核心就是整理出两列:一列是起点,一列是终点。每一行代表一条边。这是最基础、也是最常用的导入方式,叫边表(Edges Table)。
1.2 边表和节点表,新手先用边表就够了
Gephi 支持两种 CSV 导入方式:边表和节点表。很多人一上来就被这两个概念绕晕,其实你只要记住一句话:边表里已经隐含了节点。
比如你有这么一行数据:
| Source | Target |
|---|---|
| 张三 | 李四 |
Gephi 读到这行,会自动创建"张三"和"李四"两个节点,然后在它们之间连一条边。你根本不需要单独再准备一份节点清单。只有当你想给每个节点单独设置属性(比如节点大小、颜色、所属类别)的时候,才需要额外准备节点表。
新手阶段,只准备边表就够了。等图能正常画出来了,再考虑加节点属性的事。这个顺序很重要,一上来就搞两张表,很容易因为两边的节点名称对不上导致导入报错。
1.3 为什么必须是 CSV,Excel 直接存 xlsx 行不行
不行。Gephi 不认.xlsx格式。它认的是.csv(逗号分隔值)和.tsv(制表符分隔值)。CSV 本质上就是一个纯文本文件,每一行是一条记录,字段之间用逗号隔开。
Excel 可以另存为 CSV,操作是:文件 → 另存为 → 选择"CSV UTF-8(逗号分隔)(*.csv)"。注意这里一定要选带 UTF-8 的那个选项,原因后面会详细讲,这是新手翻车最多的地方。
提示:如果你用的是 Mac 版 Excel,另存为的菜单里同样有"CSV UTF-8"选项,位置在"文件 → 另存为"的格式下拉框里。不要选"CSV(逗号分隔)",那个默认编码不是 UTF-8。
2. 在 Excel 里把数据整理成 Gephi 能读的样子
2.1 最简边表的结构:两列,有表头
打开 Excel,新建一个工作表,第一行写表头。推荐用这两个名字:
- 第一列:
Source(或者写"源"、"起点"都行) - 第二列:
Target(或者写"目标"、"终点")
从第二行开始,每一行填一对关系。比如:
| Source | Target |
|---|---|
| 张三 | 李四 |
| 李四 | 王五 |
| 张三 | 王五 |
| 王五 | 赵六 |
这四行数据,Gephi 读进去之后会生成四个节点(张三、李四、王五、赵六)和四条边。就这么简单。
表头这一行很重要,Gephi 导入的时候会问你要不要保留表头,有表头它才能正确识别哪列是 Source、哪列是 Target。所以千万别省表头。
2.2 有向图还是无向图,数据整理时就要想清楚
这里有个概念需要提前定:你的关系是有向的还是无向的。
- 无向图:A 和 B 有关系,就等于 B 和 A 有关系。比如"合作过"这种关系,通常是无向的。
- 有向图:A 指向 B,不代表 B 指向 A。比如"关注"关系,我关注你,你不一定关注我。
在 Excel 里,无向图你只需要写一行(张三-李四),Gephi 导入时选择"无向"类型,它会自动处理成双向可通行。有向图则要注意方向,Source 是起点,Target 是终点。
新手建议先用无向图练手,因为不用纠结方向问题,画出来的图也更容易看懂。等熟悉了再玩有向图。
2.3 权重列:让粗线细线区分关系强弱
如果你的关系有强弱之分,比如合作次数、通信频率、交易金额,可以加第三列Weight(权重)。比如:
| Source | Target | Weight |
|---|---|---|
| 张三 | 李四 | 5 |
| 李四 | 王五 | 2 |
| 张三 | 王五 | 8 |
导入 Gephi 后,权重高的边可以显示得更粗,一眼就能看出哪些关系更紧密。这个在文献共被引分析、社交互动分析里特别有用。
权重列不是必须的,但强烈建议有强弱关系的数据都加上。后面在 Gephi 的外观面板里,可以把权重映射到边的粗细上,视觉效果直接提升一个档次。
2.4 节点名称的坑:空格、特殊符号、重名
这是新手最容易忽略、也最容易导致导入失败的地方。节点名称在 Gephi 里是唯一标识,所以:
- 前后不要有空格。Excel 里肉眼看不出来,但"张三"和"张三 "在 Gephi 眼里是两个不同的节点。整理完数据后,可以用 Excel 的
TRIM函数批量清理空格。 - 避免特殊符号。逗号、引号、换行符这些在 CSV 里是分隔符或转义字符,节点名称里带了会直接把 CSV 结构搞乱。如果非要用,建议统一替换成下划线或短横线。
- 注意重名。如果两个不同的人同名,Gephi 会把它们当成同一个节点合并。这种情况需要在名称里加区分,比如"张三_研发部"和"张三_市场部"。
我自己的习惯是,整理完数据后先做一遍清洗:全选两列,用TRIM去空格,用查找替换把逗号、引号统一处理掉,再另存为 CSV。这一步花两分钟,能省掉后面半小时的排查时间。
3. 另存为 CSV 时的编码问题,90% 的乱码都出在这
3.1 为什么中文会变成乱码
CSV 文件本身不包含"我用的是什么编码"这个信息,它就是一串字节。Excel 默认另存的 CSV 用的是本地编码(中文 Windows 下通常是 GBK),而 Gephi 默认按 UTF-8 去读。编码对不上,中文就变成了"锟斤拷"或者一堆问号。
解决办法就一个:另存为的时候选"CSV UTF-8(逗号分隔)"。这样 Excel 会把中文按 UTF-8 编码写进文件,Gephi 读的时候就能正确显示。
如果你已经存成了普通 CSV,发现导入 Gephi 后中文乱码,不用重新整理数据,用记事本打开那个 CSV,另存为的时候把编码改成 UTF-8 就行。或者用 Notepad++ 这类编辑器,菜单里直接有"编码 → 转为 UTF-8"。
3.2 用记事本验证编码是否正确的笨办法
存完 CSV 之后,别急着导入 Gephi。先用记事本打开看一眼。如果中文正常显示,说明编码没问题;如果显示的是乱码,那说明编码还是不对,需要重新另存。
这个笨办法特别管用,因为记事本对编码的识别比较"诚实",它显示乱码基本就是真乱码。而 Excel 打开 CSV 的时候会自动猜编码,有时候会"假装"显示正常,反而误导你。
3.3 Mac 和 Windows 下的差异
Windows 版 Excel 另存为 CSV 时,编码选项藏得比较深,需要在下拉框里主动选"CSV UTF-8"。Mac 版 Excel 相对好一点,另存为对话框里直接有"CSV UTF-8"这个格式选项。
另外,Mac 上如果用的是 Numbers 而不是 Excel,导出 CSV 的路径是"文件 → 导出 → CSV",它默认就是 UTF-8,这点比较省心。但 Numbers 导出的 CSV 有时候会在字段里加引号,导入 Gephi 前最好用文本编辑器检查一下。
4. 在 Gephi 里导入 CSV 的完整操作链路
4.1 数据资料窗口:点哪个按钮
打开 Gephi,左侧有一个"数据资料"(Data Laboratory)窗口。注意,导入 CSV 不是在"概览"(Overview)里操作,而是在数据资料里。
具体路径:
- 点击顶部标签栏的数据资料
- 在打开的界面里,找到导入电子表格按钮(图标是一个表格加一个箭头)
- 在弹出的文件选择框里,选中你刚才存好的 CSV 文件
这里有个细节:Gephi 的"概览"和"数据资料"是两个独立的工作区。概览负责看图和调布局,数据资料负责管数据。导入数据必须在数据资料里做,很多新手在概览里找了半天找不到导入按钮,就是因为走错了地方。
4.2 导入向导里的三个关键选择
选中 CSV 后,Gephi 会弹出一个导入向导,分几步让你确认。这里有几个选项必须选对:
第一步:选择分隔符。默认是逗号,如果你存的是标准 CSV,保持默认就行。如果你用的是 TSV(制表符分隔),这里要改成 Tab。
第二步:选择导入类型。这里要选边表格(Edges table)。如果你选成了"节点表格",Gephi 会把每一行当成一个节点,画出来的图就没有边了。
第三步:确认表头。向导里会显示你 CSV 的前几行,让你确认哪列是 Source、哪列是 Target。如果表头写的是中文"源"和"目标",这里要手动在下拉框里对应上。用英文 Source/Target 的话,Gephi 通常能自动识别。
第四步:选择图类型。无向图选"无向",有向图选"有向"。这个前面已经讲过怎么判断了。
4.3 导入后数据去哪了:节点和边两个标签页
导入成功后,数据资料窗口里会有两个标签页:节点和边。点"节点"能看到所有自动生成的节点,点"边"能看到所有关系。
如果这里节点数是 0 或者边数是 0,说明导入失败了。常见原因:分隔符选错了、导入类型选错了、CSV 编码有问题导致 Gephi 读不出内容。回到上一步重新检查。
确认节点和边都正常之后,点击顶部标签栏回到概览,你就能看到图了。不过这时候的图通常是一团乱麻,所有节点挤在一起,需要调布局。
5. 让图从"一团毛线"变成"能看的网络图"
5.1 布局算法:ForceAtlas 2 是新手首选
刚导入的图,所有节点默认堆在中心,完全看不出结构。这时候需要在左侧"布局"面板里选一个布局算法,点"运行"。
新手直接用ForceAtlas 2就行。它的逻辑是:节点之间有斥力,互相推开;有边的节点之间有引力,互相拉近。跑一会儿之后,关系紧密的节点会聚成一团,关系疏远的会散开,网络结构就出来了。
运行的时候可以勾选"防止重叠",避免节点叠在一起看不清。跑个几十秒,图稳定了就可以点"停止"。
其他布局算法比如 Fruchterman Reingold、Yifan Hu 也可以试,但 ForceAtlas 2 的通用性最好,参数也最容易调。
5.2 用度值调整节点大小,一眼看出核心节点
图跑开之后,下一步是让重要的节点更显眼。最常用的指标是度(Degree),也就是一个节点连了多少条边。度越高,说明这个节点越核心。
操作路径:右侧"外观"面板 → 选"节点" → 选"尺寸" → 选"度" → 设置最小尺寸和最大尺寸 → 点"应用"。
比如最小设 10,最大设 50,那度低的节点就是小圆点,度高的节点就是大圆点。这样一眼就能看出谁是网络里的关键人物。
5.3 模块化:给不同社群上不同颜色
如果网络里有明显的社群结构(比如几拨人各自抱团),可以用模块化(Modularity)来上色。
操作路径:右侧"外观"面板 → 选"节点" → 选"颜色" → 选"模块化" → 点"应用"。
Gephi 会自动计算社群划分,给每个社群分配不同的颜色。同一个颜色的一坨,就是一个社群。这个在分析社区结构、研究群体聚类的时候特别直观。
5.4 显示标签和调整预览
节点和边都调好之后,可以打开底部的"标签"开关,让节点名称显示出来。如果标签太密,可以在"概览"里把图放大,或者只给度高的节点显示标签。
最后如果要导出图片,切到顶部的预览标签页,那里可以调背景色、节点透明度、边的粗细,调好之后点"导出"保存成 PNG 或 PDF。
6. 导入失败和显示异常的排查清单
6.1 导入后节点数为 0 的三种可能
这是最常见的问题,按顺序排查:
| 现象 | 可能原因 | 解决办法 |
|---|---|---|
| 节点和边都是 0 | 分隔符选错 | 检查 CSV 是逗号还是 Tab 分隔 |
| 节点有但边是 0 | 导入类型选成了节点表 | 重新导入,选"边表格" |
| 节点名全是乱码 | 编码不是 UTF-8 | 用记事本另存为 UTF-8 |
排查的时候,先用记事本打开 CSV 确认内容正常,再回 Gephi 重新走一遍导入向导。大部分问题都出在这三步里。
6.2 中文乱码的两种修复路径
如果已经导入 Gephi 才发现乱码,有两种修法:
路径一:改源文件。用记事本或 Notepad++ 打开 CSV,转成 UTF-8 编码保存,然后重新导入 Gephi。
路径二:改 Gephi 读取编码。这个比较麻烦,Gephi 本身没有提供导入时选编码的选项,所以还是改源文件更靠谱。
注意:不要试图在 Excel 里直接改编码,Excel 的另存为才是控制编码的地方。打开 CSV 再另存为,选 UTF-8,这是最稳的操作。
6.3 节点名称带空格导致的"重复节点"
前面提过,空格会导致同名节点被识别成两个。如果你发现节点数比预期多,比如明明只有 20 个人,结果生成了 25 个节点,大概率就是空格问题。
修复方法:回到 Excel,用TRIM函数清理两列的所有单元格,重新另存为 CSV,重新导入。TRIM的用法是在空白列输入=TRIM(A2),往下拉,然后把结果复制回原列(用"选择性粘贴 → 值")。
6.4 边太密看不清怎么办
如果边特别多,图会变成一团黑。这时候可以:
- 在"外观"面板里把边的透明度调低
- 用"过滤"面板按权重筛选,只显示权重高的边
- 在布局里增大斥力,让节点散得更开
过滤器的用法:右侧"过滤"面板 → 选"边" → 选"权重" → 设置范围 → 点"过滤"。这样可以把弱关系暂时隐藏,只看核心结构。
7. 一份可以直接抄的 Excel 模板结构
7.1 基础版:两列边表
最简模板就三行表头加数据:
| Source | Target |
|---|---|
| 节点A | 节点B |
| 节点B | 节点C |
| 节点A | 节点C |
存成 CSV UTF-8,导入 Gephi 选边表格、无向图,直接就能用。
7.2 进阶版:带权重和类型的边表
如果关系有强弱和类别,可以扩展成:
| Source | Target | Weight | Type |
|---|---|---|---|
| 节点A | 节点B | 5 | 合作 |
| 节点B | 节点C | 2 | 引用 |
| 节点A | 节点C | 8 | 合作 |
Weight 列用来调边的粗细,Type 列可以在 Gephi 里用来分类上色。导入的时候,Gephi 会问你要不要把 Type 列作为边的属性导入,选"是"就行。
7.3 整理数据时的三个自查动作
每次存 CSV 之前,花一分钟做这三件事:
- 去空格:用
TRIM清理 Source 和 Target 两列 - 查重名:用"条件格式 → 突出显示重复值"检查节点名称有没有意外重复
- 看编码:另存为时确认选的是"CSV UTF-8"
这三步做完,导入 Gephi 基本不会出问题。我自己的项目里,这套流程跑了几十次,没再因为数据格式翻过车。
8. 从 CSV 到网络图,真正要练的是数据思维
工具操作本身不难,Gephi 的导入流程走一遍就会了。真正决定图好不好看的,是你在 Excel 里整理数据时的思路。同样一份关系数据,有人整理出来是一团乱麻,有人整理出来结构清晰,差别就在对"节点"和"边"的理解上。
我的建议是,刚开始别追求复杂的分析,先用一份小数据(十几个节点、二三十条边)把整个流程跑通。从 Excel 整理、另存 CSV、导入 Gephi、调布局、上色、导出图片,完整走一遍。走通之后,再换更大的数据、更复杂的属性。这个顺序比一上来就啃大项目要高效得多。
另外,CSV 文件建议保留一份原始版和一份清洗版。原始版不动,清洗版用来导入。这样万一导入出问题,还能回头对比是哪里改坏了。这个习惯在数据量大的时候特别救命。