gnuplot 作为一个绘图软件,一般都是读取数据,把图像输出到指定的
terminal。但是 gnuplot 也可以把图像以
table 形式存储到一个数据文件中。这样做的好处是方便我们对图像数据进行进一步处理,得到我们想要的效果。我们之前画等高线图所用的 surface.dat 文件,其实就是通过这种方式得到的。
还以 surface.dat 数据的等高线图为例,
contour 模式只能在
splot 命令中使用。如果我们把等高线图预先以
table 格式存入一个文件,我们就可以对其进行适当处理,并且可以用
plot 命令绘图:
gnuplot> set contour base
gnuplot> unset surface
gnuplot> set table 'cont.dat'
gnuplot> splot 'surface.dat'
gnuplot> unset table
gnuplot> unset key
gnuplot> set size square
gnuplot> set xrange [-4:4]
gnuplot> set yrange [-4:4]
gnuplot> plot 'surface.dat' with image, 'cont.dat' with lines lw 1.5 lc rgb 'yellow'
这里我们预先把等高线图以
table 格式存入了 cont.dat 文件,随后用
plot 命令调用该文件,把等高线画在了 surface.dat 数据的
image 图上(注意:不是
pm3d 图)。这里我们可以用
plot 命令的图线风格参数控制等高线的粗细和颜色。
这里我们没有像以前那样用不同颜色区分等高线,而是所有等高线使用了同一颜色。那么怎样区分各个等高线呢?我们可以用
label 标注等高线数值。
label 的使用方法我们在
第十五讲里介绍过,但是直接手动设置
label 有点麻烦。下面这个网页里的 label_contours.awk 文件是一个 AWK 脚本文件,可以帮助我们自动设置标签:
http://gnuplot.sourceforge.net/scripts/index.html#tricks-here我们这里不打算介绍 AWK 脚本语言,也不打算介绍这个脚本的具体使用方法,因为该网页以及该文件内已经包含了详细的使用说明。我们只给出一个使用该脚本得到的带标注的等高线图:
https://m.sciencenet.cn/blog-373392-522852.html
上一篇:
谈谈gnuplot(三十二):等高线的颜色下一篇:
谈谈gnuplot(三十四):多图(multiplot)