zhikuiguo的个人博客分享 http://blog.sciencenet.cn/u/zhikuiguo

博文

Nature论文中的三维图原来是这么画的

已有 695 次阅读 2020-7-29 23:15 |个人分类:科研作图很简单|系统分类:科研笔记| gmt, 三维数据可视化

高水平科研结果必须要用高水平数据可视化方式展现给编辑、审稿人和读者才能赢得更多的理解和支持!利用GMT可以容易的实现三维数据可视化,这里将我多年摸索得来的独家秘方全部奉上!用GMT绘制三维图,学这一个例子就够了。提供全套解决方案,包括修复三维绘图bug之后的独家GMT版本,还有教程中所需要的所有的运行环境和程序,全部打包为Docker镜像。再也不用担心有些命令无法在你电脑上运行了。Nature子刊作者手把手教学,附带三小时4K教学视频和全部代码,将三维绘图和一些常用gmt命令和数据处理一网打尽!

幻灯片预览

教程内容教程内容

效果展示

先上一个效果展示图,符合你的预期再往下看

图1 Nature Comms.(10.1038/s41467-020-15062-w)论文中的图1用GMT绘制的效果图1 Nature Communications(10.1038/s41467-020-15062-w)论文中的图1用GMT绘制的效果

绘图过程简介

GMT绘图复杂组合图,建议采用先拆分后组合的策略!

Figure1(a,b)

这是两个二维图,完全没有难度,直接上图。

Figure 1 (a)Figure 1 (a)Figure 1 (b)Figure 1 (b)

Figure1(c)

海底地形三维立体图+三维散点,这个必须使用我修复bug之后的gmt才能画出这种效果,所需要的所有程序都在docker镜像里面。只需简单的三个命令就可以使用,完全无压力!Figure 1 (c)

Figure1(d)

海底地形三维立体图+三维散点+切片数据+切片投点和曲线,这个必须使用我修复bug之后的gmt才能画出这种效果,所需要的所有程序都在docker镜像里面。只需简单的三个命令就可以使用,完全无压力!Figure 1 (d)

最终组合

图1的最主要的四个子图,每一个都能够单独绘制,然后将其进行组合布局。因为gmt不是一个所见即所得的绘图软件,所以为了更方便的设置每个子图的位置,可以通过一个A4纸大小的网格作为辅助底图进行布局调整。Figure 1

三小时高清精讲视频和全部绘图代码

三维数据可视化之GMT风格

图1的不完整绘图代码示例

总共两百行代码就可搞定上面的三维+二维组合图

function preset()
{
    path_data=../../data/raw
    bathy=${path_data}/bathy/bathy_Longqi_cart.nc
    basalt=${path_data}/sites/site_basalt_cart_zhao_bathy.txt
    # 数据范围
    zmin=-6
    zmax=-1.5
    zrange=$zmin/$zmax
    xmin=-18.35
    xmax=33.35
    ymin=-29.9826
    ymax=11.653 
    range=$xmin/$xmax/$ymin/$ymax 
    range_xyz=${range}/$zrange
    xmin_eq=0
    xmax_eq=20
    ymin_eq=-10
    range_xyz_eq=$xmin_eq/$xmax_eq/$ymin_eq/$ymax_eq/$zmin_eq/$zmax_eq
    # 视角
    angle_h=-40 
    angle_v=45
    angle_view=${angle_h}/$angle_v
    # 图片大小
    width_x_fig=8
}
gmt begin Figure1 pdf 
    # (a)
    move_x=0
    move_y=12
    # gmt basemap -JM$figwidth_inset -R$range_inset -Bwsen  --MAP_FRAME_TYPE=plain
    # gmt basemap 
    gmt coast -Ggray -JL$lon0_inst/$lat0_inst/$lat_min_inset/$l
    gmt grdcontour $bathy_AUV -C0.02 -A+f3p,Helvetica+ggreen -W0.2p -GD500e -p
    # 采样点
    symbol_sample=c
    gmt psxy $path_data/sites/M-active.txt -S$symbol_sample$si
    # legend
    # (d)
    move_x=-1
    move_y=-4
    gmt basemap -JX$width_x_fig_eq/$width_y_fig_eq -JZ$width_z
    gmt grdview $bathy -JZ -p -C$bathy_cpt  -N${zmin_eq}+g$color_profile -Qi -I0+a45 -Wf0.5p,black
    awk '{print $1/1000.0, $2/1000.0}' $earthquake  | gmt grdtrack -G$bathy | gmt psxyz -JZ -p -Sc$size_eq -Ggreen -Wblack
    # 东西方向
    gmt basemap -JX$width_x_fig_eq/$width_z_fig_eq -JZ$width_y_
# boundary between title and legend
# symbol space legend type length (-) thickness,color space LegendName
# N 3
H 10p Helvetica Legend of figure (c)
N 2
${gap_rows}c
S        ${left_symbol}c   a      0.3c            $color_active 0.2p,$color_active       ${symbol_text}c  Active hydrothermal field
S        1c   c      ${size_symbol}c            $color_basalt 0
gmt end

rm tmp* gmt.history box.eq 




http://blog.sciencenet.cn/blog-621290-1244180.html

上一篇:GMT语法高亮-智能提示-代码补全插件

0

评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2020-10-29 12:54

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部