0%

坐标取值范围及刻度

gnuplot 默认的x取值范围为[-10,10],对于正弦函数而言,我们比较希望是+-π。
此时可以使用xrange参数来指定。

1
2
3
gnuplot > plot sin(6*x)
gnuplot> set xrange [-pi:pi]
gnuplot> replot

xrange用来指定横坐标的取值范围。

sin(x)-xrange

此时我们看到横坐标还是用数字表示,我们希望用π的来表示,如下:

1
2
3
gnuplot> set xtics pi
gnuplot> set mxtics 2
gnuplot> replot

sin(x)-xtics

此时的坐标我们看到是按照3.1415来显示的,其中xtics表示主刻度,mxtics(minor xtics)表示分刻度,每个主刻度之间分两个刻度显示。

此时我们希望3.1415用π来显示,如下还是使用xtics参数来调整。

1
2
gnuplot> set xtics ("-π" -pi, "-π/2" -pi/2.0,"π/2" pi/2.0,"π" pi)
gnuplot> replot

sin(x)-pi

此时的横坐标轴就比较完美了。

set xtics 命令直接规定了每个刻度的位置和显示的字符。每一个刻度对应三个参数:显示字 符、刻度位置、刻度等级。刻度等级为 0 时表示主刻度,等级为 1 时表示分刻度。对于主刻度 (等级为 0 时),表示等级的参数也可以省略不写。各个刻度的参数之间用逗号隔 。从上面的例 子我们还看出,显示字符可以为空,也就是只标刻度,不显示字符。

然后把纵坐标也修改一下,如下:

1
2
gnuplot> set ytics -1,0.5,1
gnuplot> replot

sin(x)-ytics

总结

本节新增了基本命令:

  • plot 绘制2D图形
  • replot 重绘图形
  • set 设置参数
  • unset 取消设置
  • key 表示图例
  • samples 表示采样数
  • xlabe/ylabel/title 设置x轴、y轴和title的参数

参考

主要参考《Gnuplot In Action》和《使用 gnuplot 科学作图》,请支持正版。

开始绘图了

OK,万事俱备开始画图。

gnuplot应该是最简单的绘图工具了,我指的是刚开始,一条命令就出来一个正弦图像。
不需要打开臃肿的Matlab,不需要在python里面调用matplotlib,不需要C语言调用第三方库。
仅仅一个命令:

1
gnuplot > plot sin(x)

sin(x)

gnuplot里面的plot用来绘制2D图像,我们注意到正弦波的波峰和波底貌似不是很平滑,我们把周期缩小一点再看看。

1
gnuplot > plot sin(6*x)

sin(x)

此时看着更明显,可以看到不是我们想象的正弦函数,这里主要是因为周期小,震荡快,而gnuplot默认取样为100个点,此时我们加大取样点为600,如下命令,再画一下,可以看到就比较完美了。

1
2
gnuplot > set samples 600
gnuplot > replot

sin(x)

此时我们看到右上角的上标可有可无,因为我们只绘制了一条曲线,所以可以通过key来取消,如下:

1
2
gnuplot > unset key
gnuplot > replot

sin(x)

现在可以看到图形一览无余,但是如果发送给别人,其他人是看不懂表示什么意思的,此时我们就需要加上x轴、y轴和题目。

1
2
3
4
gnuplot > set title "sin(6*x)"
gnuplot > set xlabel "X"
gnuplot > set ylabel "Y"
gnuplot > replot

sin(x)

总结

本节新增了基本命令:

  • plot 绘制2D图形
  • replot 重绘图形
  • set 设置参数
  • unset 取消设置
  • key 表示图例
  • samples 表示采样数
  • xlabe/ylabel/title 设置x轴、y轴和title的参数

参考

主要参考《Gnuplot In Action》和《使用 gnuplot 科学作图》,请支持正版。