Gnuplot科学绘图
系列内容
Gnuplot科学绘图(二十一)——简单 3D 函数绘图
Gnuplot科学绘图(二十二)——数据文件存储格式
Gnuplot科学绘图(二十三)—— 3D 数据曲面绘图及边框
在 3D 函数绘图中我们介绍过,使用 pm3d 模式可以用色彩表示 3D 函数值的大小。数据绘图也可以使用 pm3d 模式。我们这次就稍微详细介绍一下 pm3d。
我们看到,本来的曲面被加上了颜色,不同的色彩对应不同的 z 值,这个对应关系显示在右边的色彩条(color box)中。这里有个问题:我们的数据是 6x6 的,但是色彩块只有 5x5,这个色彩是怎样确定的呢?很简单,每个块的四个顶点取平均值,对应的色彩就是这个块的色彩。这个取值方法不是唯一的,可以用 corners2color 参数来设定,详情请用 help set pm3d 命令查询。
色彩图除了画在曲面上,还可以画在底部或顶部(还记得 3D 图底部和顶部都有 border 吗?)设置方法为:
set pm3d at b|s|t
b,s,t 三个字母分别代表底部、曲面和顶部,at 之后可以是任一个字母,也可是三个字母的任意组合。例如:
gnuplot> set pm3d at bst
gnuplot> replot
当然,如果要看数据在取值范围内的全貌,最好的方法是从上往下看:
gnuplot> set pm3d map
gnuplot> set size square
gnuplot> replot
我们之前介绍过 set view 命令调整视角,这里的 set pm3d map 其实是包含 set view map 命令在内的一系列命令组合。
我们注意到,右边的色彩条取值范围是[0.1:1],这是 gnuplot 自动设置的。如果我们想手动设置这个范围呢?可能有人会想到 set zrange,但是 zrange 控制的是画图时 z 的取值范围,而不是色板对应的取值范围。其实,色板对应的取值范围是 cbrange(Color Box range): gnuplot> set cbrange [0:1]
gnuplot> replot
我们什么时候会想要手动设置 cbrange 呢?例如,我们需要比较两组数据的时候,我们一定希望两张图上,相同数值对应的是相同的颜色。
最后,我们有时候可能觉得这样像“马赛克”一样的图片不那么好看。这时候,我们可以利用插值,得到比较平滑的彩色图。使用插值的方法是: set pm3d interpolate N,M M 和 N 分别代表 x 和 y 方向插值的数目。如果希望 gnuplot 自动优化选择,就让 M=N=0: gnuplot> set pm3d interpolate 0,0
gnuplot> replot
本文整理自马欢老师科学网博客,特此感谢原作者的分享。
Materials Studio系列内容
中科大 Materials Studio 培训快速入门教程(包你学会!)
精选众多论坛讨论贴,Materials-Studio 论坛问答全集
怎样把Materials studio能带图做得漂亮,用Matlab绘制呀!
Materials Studio手把手教程丨界面操作、应用与NaCl晶体构建实例
怎么利用Materials Studio建立晶体模型?就是这么简单!
手把手教你用Materials Studio计算碳纳米管的能带结构
基于Materials Studio的异质结构建模技巧
如何分析第一原理计算结果:电荷密度图、能带结构、态密度的分析
70张图,搞定能带理论基础!
【长篇图文,包教包会】Materials Studio软件——CASTEP使用教程详解
Gnuplot科学绘图(一)——从安装到简单函数绘图(文末有彩蛋)
Gnuplot科学绘图(二)——坐标取值范围及刻度(文末有彩蛋)
Gnuplot科学绘图(三)——点线风格
Gnuplot科学绘图(四)——多组数据绘图
Gnuplot科学绘图(五)——输出eps 图片
Gnuplot科学绘图(六)——输出pdf 和png 图片
Gnuplot科学绘图(七)——Enhanced 文本模式
Gnuplot科学绘图(八)——插入LATEX 公式
Gnuplot科学绘图(九)——栅格以及方程数值解估算
Gnuplot科学绘图(十)——第二坐标轴
Gnuplot科学绘图(十一)——Gnuplot 的坐标系统及标签
Gnuplot科学绘图(十二)——箭头
Gnuplot科学绘图(十三)——边框和坐标轴
Gnuplot科学绘图(十四)——图例
Gnuplot科学绘图(十五)——对数坐标
Gnuplot科学绘图(十六)——图像尺寸
Gnuplot科学绘图(十七)——极坐标
Gnuplot科学绘图(十八)——参数方程
Gnuplot科学绘图(十九)——误差条(error bar)
Gnuplot科学绘图(二十)——拟合
Gnuplot科学绘图(二十一)——简单 3D 函数绘图
Gnuplot科学绘图(二十二)——数据文件存储格式
Gnuplot科学绘图(二十三)—— 3D 数据曲面绘图及边框
pm3d 即 Palette Map 3D,中文或叫“色板映射”。我们还是拿上一篇文章中的数据文件来举例子:
gnuplot> set xlabel "X"
gnuplot> set ylabel "Y"
gnuplot> set zlabel "Z"
gnuplot> set xyplane 0.2
gnuplot> unset key
gnuplot> set hidden3d
gnuplot> set pm3d
gnuplot> set view 45,210
gnuplot> splot "data3d.dat" with lines
![815342bf2b5bae6c2b845db48fd83afc.png](https://i-blog.csdnimg.cn/blog_migrate/44b1a3d17758635a5090f2d0e8d27a27.png)
gnuplot> replot
![cea304257fec2321de27d8c9b869980a.png](https://i-blog.csdnimg.cn/blog_migrate/6eaba226490c2e8b48b30db6f6f96afb.png)
gnuplot> set size square
gnuplot> replot
![371bdae6ad48758489ca7a4c1eeb0d7f.png](https://i-blog.csdnimg.cn/blog_migrate/4d2ad211e100408447d68ba43710798c.png)
我们注意到,右边的色彩条取值范围是[0.1:1],这是 gnuplot 自动设置的。如果我们想手动设置这个范围呢?可能有人会想到 set zrange,但是 zrange 控制的是画图时 z 的取值范围,而不是色板对应的取值范围。其实,色板对应的取值范围是 cbrange(Color Box range): gnuplot> set cbrange [0:1]
gnuplot> replot
![9015439423d9bd112a6b81160013ae69.png](https://i-blog.csdnimg.cn/blog_migrate/4d9222f4b20f8bb337a8c4f6f2b73840.png)
最后,我们有时候可能觉得这样像“马赛克”一样的图片不那么好看。这时候,我们可以利用插值,得到比较平滑的彩色图。使用插值的方法是: set pm3d interpolate N,M M 和 N 分别代表 x 和 y 方向插值的数目。如果希望 gnuplot 自动优化选择,就让 M=N=0: gnuplot> set pm3d interpolate 0,0
gnuplot> replot
![9094a51bbaa5fb2e024199bef43c260c.png](https://i-blog.csdnimg.cn/blog_migrate/8b097a4e0df4fa589823715e72ed0bf4.png)