本人菜鸟,初试gnuplot绘图工具,画等高线图,根据使用情况,写了个入门级小脚本。
画三维图的数据需分块,当x为一个值时,y变化一周(从小到大),z相应变化,这样作为一块,然后x变化,y变化一周,z相应变化,以此类推。块与块之间用一行空格隔开。等高线图是根据三维图的投影画出来的。
以下是脚本,脚本后缀名随意,运行脚本,gnuplot 文件名,即可。
set hidden3d 设置三维图像
splot "m2.dat" lw 2 with lines 导入数据,画三维图像,线加粗
set contour 画三维图投影图,即等高线
splot "m2.dat" lw 2 with lines title "" 设置图表标题为空
unset surface 去掉三维图像
set view map
set size square 设置图像大小
set cntrparam levels incremental 83.5,0.5,84.5 设置等高线疏密范围,从83.5到84.5,每隔0.5画一条线。
set yrange[-8:-10] 设置y轴范围,从-8到-10
set xlabel "x" 设置x轴名称
set ylabel "y" 设置y轴名称
set title "title" 设置标题名称
set term post eps color solid enh 设置输出格式为eps
set output "m2.eps" 设置输出文件到m2.eps
结果图:
#! /bin/sh
set hidden3d
splot "m2.dat" lw 2 with lines
set contour
splot "m2.dat" lw 2 with lines title ""
unset surface
set view map
set size square
set cntrparam levels incremental 83.5,0.5,84.5
set yrange[-8:-10]
set xlabel "x"
set ylabel "y"
set title "title"
replot
set term post eps color solid enh
set output "m2.eps"
replot