Gnuplot绘图入门1——sin(x)绘制与美化
gnuplot是一个跨平台且免费的交互式绘图软件,可以根据我们提供的函数或数据绘制二维/三维图形,还能生成GIF动画。
在linux命令行或windows的cmd命令窗口输入gnuplot
即可进入gnuplot的命令窗口,使用quit
或者exit
可以退出gnuplot的命令窗口。下图展示了Linux发行版deepin V20中gnuplot安装、进入和退出的命令,本教程使用的gnuplot版本5.2。
绘制正弦函数sin(x)
输入入下命令绘制sin(x)
plot sin(x)
设置标题,坐标轴标签
set title "sin(x)"
set xlabel "x"
set ylabel "y"
replot
这里需要注意,最后一条命令replot
是为了更新图像,每次对图像属性进行设置后需要使用replot
命令更新图像。
取消标题命令,其它设置也可以通过unset取消。
unset title
replot
设置坐标轴范围
set xrange[-2*pi:2*pi]
set yrange[-1.5:1.5]
replot
x轴的刻度不是很值观,使用如下命令更改为 π \pi π 相关的刻度,同时添加网格
set xtics("-2{/Symbol \160}" -2*pi, "-{/Symbol \160}" -pi, "0" 0, "{/Symbol \160}" pi, "2{/Symbol \160}" 2*pi)
set grid
replot
上面在显示 π \pi π 时在x轴的刻度标签中使用了Symbol字体,显示Symbol字体的方法参见列在本文最后的参考网页3。也可以使用gnuplot的epslatex终端在图中插入latex的方式显示各种复杂符号,epslatex终端的使用方法参见参考网页4。
接着更改字体为Times New Roman,字号改为14
set xlabel font "Times New Roman, 14"
set ylabel font "Times New Roman, 14"
set xtics font "Times New Roman, 14"
set ytics font "Times New Roman, 14"
set key font "Times New Roman, 14"
replot
修改线型、线宽、点样式和点大小
plot sin(x) with linespoint dt 1 lw 1.5 pt 6 ps 1 lc "red"
命令 | 缩写 | 意义 |
---|---|---|
with | w | with后面跟需要指定的样式 |
line | l | 绘制线图 |
point | p | 绘制点图 |
linespoint / linespoints | lp | 绘制点线图 |
dashtype | dt | 设置线型(dt 1 实线,dt 2 虚线,dt 3 点线,dt 4 点划线,dt 5 双点划线) |
linewidth | lw | 设置线宽 |
pointtype | pt | 设置点多类型 |
pointsize | ps | 设置点的尺寸 |
linecolor | lc | 设置线的颜色 |
利用脚本文件绘图
有时候对某个数据绘图后,下次可能还需要修改,为了避免重复输入相同的命令,可以在第一次作图时就将所有的绘图命令写在一个文本文件中。为了和其它文本文件区分,可以使用plt作为文件名的后缀。例如可以将如下命令放到名为a.plt的文本文件中,然后在命令行使用gnuplot a.plt
绘图。gnuplot中输出文件的格式是由terminal来控制的。
set term pngcairo enhanced font "Times New Roman, 14" # 为了导出png格式图片,设置终端类型为pngcairo
set output "a.png" # 绘图后导出名为a.png的图片,这一行和上面一行都要放在plot之前
set key font "Times New Roman, 12"
set xtics("-2{/Symbol \160}" -2*pi, "-{/Symbol \160}" -pi, "0" 0, "{/Symbol \160}" pi, "2{/Symbol \160}" 2*pi)
set grid
set xrange[-2*pi:2*pi]
set yrange[-1.5:1.5]
set xlabel "x"
set ylabel "y"
plot sin(x) with linespoint dt 1 lw 1.5 pt 6 ps 1 lc "red"