☰
从地质图到论文插图:手把手教你用GMT6.1绘制带中文标注的专业图表
2026/10/26 5:25:29 网站建设 项目流程

从地质图到论文插图:手把手教你用GMT6.1绘制带中文标注的专业图表

在地球科学领域的研究中,专业图表是展示研究成果的重要载体。一张精心设计的图表往往能胜过千言万语的描述,而GMT(Generic Mapping Tools)作为地学领域广泛使用的绘图工具,其强大的功能和灵活的定制性使其成为科研工作者的首选。然而,对于中文用户而言,GMT默认不支持中文显示的问题常常成为阻碍其发挥全部潜力的绊脚石。

本文将带领读者从零开始,逐步解决GMT6.1中文显示问题,并最终绘制出可直接用于学术论文发表的专业级图表。不同于简单的配置教程,我们将重点关注如何将这些技术配置转化为实际的科研产出,提供可直接复用的脚本模板和样式建议,帮助研究者节省宝贵的时间。

1. 环境准备与基础配置

1.1 GMT6.1安装注意事项

在开始配置中文支持前,确保已正确安装GMT6.1。值得注意的是,GMT安装包中自带的Ghostscript组件不支持中文显示,因此需要采取特殊安装方式:

  1. 下载GMT6.1安装包(推荐从官方源获取最新版本)
  2. 运行安装程序时,取消勾选Ghostscript组件的安装选项
  3. 完成GMT基础安装后,单独安装支持中文的Ghostscript

提示:建议将GMT安装路径添加到系统环境变量PATH中,以便在任何目录下都能直接调用GMT命令。

1.2 中文字体配置

GMT的中文支持需要通过自定义字体文件实现。以下是详细配置步骤:

  1. 在用户目录下创建.gmt文件夹(Windows系统需使用命令行创建):
    mkdir C:\Users\你的用户名\.gmt
  2. 在该目录下创建PSL_custom_fonts.txt文件,并添加以下内容:
    STSong-Light--GB-EUC-H 0.700 1 STFangsong-Light--GB-EUC-H 0.700 1 STHeiti-Regular--GB-EUC-H 0.700 1 STKaiti-Regular--GB-EUC-H 0.700 1 STSong-Light--GB-EUC-V 0.700 1 STFangsong-Light--GB-EUC-V 0.700 1 STHeiti-Regular--GB-EUC-V 0.700 1 STKaiti-Regular--GB-EUC-V 0.700 1
  3. 验证字体是否成功加载:
    gmt text -L
    成功加载后,应能看到39-46号字体对应上述中文字体。

2. Ghostscript配置与系统设置

2.1 安装支持中文的Ghostscript

GMT依赖Ghostscript进行PDF等格式的输出,因此需要单独安装支持中文的版本:

  1. 下载Ghostscript 9.50或更新版本
  2. 安装时保持默认设置,确保勾选"Add GS to the system PATH"选项
  3. 完成安装后,配置系统环境变量:
    • 变量名:GS_FONTPATH
    • 变量值:C:\Windows\Fonts

2.2 解决常见编码问题

中文字符显示异常往往与脚本文件编码有关。推荐使用专业文本编辑器(如Notepad++)进行脚本编写:

  1. 创建新文件时,选择"编码"→"使用ANSI编码"
  2. 保存脚本时确保编码格式保持一致
  3. 对于复杂脚本,建议添加以下命令预防编码问题:
    gmt set PS_CHAR_ENCODING Standard+

3. 实战:绘制带中文标注的专业图表

3.1 基础地图绘制

让我们从一个简单的地图示例开始,展示如何添加中文标题和坐标轴标签:

gmt begin china_map pdf,png gmt set PS_CHAR_ENCODING Standard+ gmt set FONT_TITLE 25p,41,black gmt set FONT_LABEL 15p,39,black # 设置地图范围和投影 gmt coast -R70/140/15/55 -JM15c -Baf -B+t"中国地形图" -W1/0.5p -G230 -Slightblue -Df # 添加中文图例 echo 110 50 25p,39,black 中国主要地形区 | gmt text -F+f+jCM echo 110 45 25p,40,blue 青藏高原 | gmt text -F+f+jCM echo 110 40 25p,41,red 华北平原 | gmt text -F+f+jCM gmt end

这段脚本将生成一张包含中文标题、图例的中国地图,适合用于展示区域地质特征。

3.2 科研论文常用图表样式

学术论文对图表有严格的要求,以下是一个符合出版标准的曲线图示例:

gmt begin research_figure pdf,png gmt set PS_CHAR_ENCODING Standard+ gmt set FONT_TITLE 18p,41,black gmt set FONT_LABEL 14p,39,black gmt set FONT_ANNOT_PRIMARY 12p,39,black gmt set MAP_FRAME_TYPE plain gmt set MAP_FRAME_PEN 0.5p gmt set MAP_TICK_LENGTH_PRIMARY 0.1i # 生成模拟数据 gmt math -T0/100/1 T 0.05 MUL SIN 2 MUL 5 ADD = data.txt # 绘制曲线 gmt plot data.txt -R0/100/0/10 -JX15c/10c -Bxaf+l"时间(Ma)" -Byaf+l"温度(℃)" -BWSen+t"新生代气候温度变化曲线" -W2p,red # 添加误差棒和说明 echo 50 7 0.3 0.5 | gmt plot -Sv0.2c+b -Gblack echo 52 7 14p,39,black 误差范围 | gmt text -F+f+jML gmt end

这个示例展示了如何设置符合学术规范的字体大小、线条粗细和标注样式,可直接用于论文投稿。

4. 高级技巧与疑难解答

4.1 多子图布局中的中文处理

当需要在一个画布上排列多个子图时,中文显示需要特别注意:

gmt begin multi_panel pdf,png gmt set PS_CHAR_ENCODING Standard+ gmt set FONT_TITLE 16p,41,black gmt set FONT_LABEL 12p,39,black # 第一幅子图 gmt subplot begin 2x1 -Fs15c/7c -M0.5c gmt subplot set 0 gmt coast -R-130/-70/24/52 -JM? -Baf -B+t"北美地形" -G240 -W0.2p echo -110 35 14p,39,black 落基山脉 | gmt text -F+f+jCM # 第二幅子图 gmt subplot set 1 gmt coast -R70/140/15/55 -JM? -Baf -B+t"亚洲地形" -G240 -W0.2p echo 100 35 14p,39,black 青藏高原 | gmt text -F+f+jCM gmt subplot end gmt end

4.2 常见问题解决方案

在实际使用中可能会遇到以下问题:

  1. 部分中文显示为方框:

    • 确保脚本文件编码为ANSI
    • 检查字体编号是否正确
    • 添加gmt set PS_CHAR_ENCODING Standard+
  2. 输出图片质量不佳:

    • 使用矢量格式(PDF)而非位图
    • 增加输出分辨率:
      gmt set PS_MEDIA A0
  3. 字体样式不一致:

    • 明确指定每个文本元素的字体编号和大小
    • 避免混用不同编码格式

下表总结了常见问题及解决方法:

问题现象可能原因解决方案
中文显示为方框编码问题使用ANSI编码保存脚本
部分字符缺失字体配置错误检查PSL_custom_fonts.txt内容
输出图片模糊分辨率不足增加PS_MEDIA尺寸或使用PDF格式
字体样式不一致未明确指定为每个text命令指定完整字体参数

5. 从地质图到出版级插图的工作流

将原始地质数据转化为可直接用于论文发表的插图需要系统的工作流程:

  1. 数据准备阶段:

    • 整理原始测量数据或模拟结果
    • 确定图表要表达的核心信息
    • 选择合适的图表类型(等值线图、三维曲面图等)
  2. 基础绘图阶段:

    • 使用GMT基本命令绘制数据
    • 添加必要的坐标轴和图例
    • 调整颜色方案和线型
  3. 中文标注阶段:

    • 添加中文标题和标签
    • 插入必要的文字说明
    • 统一全图字体风格
  4. 样式优化阶段:

    • 调整边距和布局
    • 优化颜色对比度
    • 确保字体大小适合出版要求
  5. 输出与验证:

    • 导出为多种格式(PDF用于出版,PNG用于演示)
    • 在不同设备上预览效果
    • 根据反馈进行微调

以下是一个完整的地震分布图示例脚本,展示了从数据到成图的完整过程:

#!/bin/bash # 地震分布图绘制脚本 # 初始化设置 gmt set PS_CHAR_ENCODING Standard+ gmt set FONT_TITLE 20p,41,black gmt set FONT_LABEL 14p,39,black gmt set MAP_FRAME_TYPE fancy gmt set MAP_FRAME_PEN 1p gmt set MAP_TICK_LENGTH_PRIMARY 0.2c # 生成���拟地震数据 cat > quakes.txt << EOF 105 30 5.2 0 地震带A 115 40 6.5 1 地震带B 125 25 4.8 0 地震带C EOF # 绘制基础地图 gmt begin earthquake_map pdf,png gmt coast -R100/130/20/45 -JM15c -Baf -B+t"中国西南地区地震分布图" -G230 -Slightblue -W0.5p # 添加地震点 gmt plot quakes.txt -Sc -Cseis.cpt -W0.5p -i0,1,2 -Es+r0.1 # 添加图例 echo 110 42 14p,39,black 地震震级: | gmt text -F+f+jLM gmt plot -Sr0.3c -Gred << EOF 112 42 EOF echo 112.5 42 12p,39,black M≥6.0 | gmt text -F+f+jLM # 添加比例尺 gmt basemap -LjBL+w200k+f+o0.5c -F+gwhite+p0.5p gmt end

在实际科研工作中,我经常需要根据不同期刊的要求调整图表样式。例如,某些期刊偏好简洁的黑白图表,而另一些则鼓励使用彩色图表突出关键信息。掌握GMT的中文配置技巧后,这些调整变得轻而易举,只需修改几个参数即可生成符合不同要求的图表版本。

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

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

立即咨询