- 绘制预定义的函数:
plot sin(x)+exp(x)
除了sin(x)外, 还支持的其他函数包括: abs(x),acos(x),asin(x),atan(x),cos(x),cosh(x),erf(x),exp(x),inverf(x),invnorm(x),log(x),log10(x),norm(x),rand(x),sgn(x),sin(x),sinh(x),sqrt(x),tan(x),tanh(x). - 绘制自定义函数:当预定义的函数不够用的时候,我们可以自己定义函数
y(x)=x**2+log(x) z(x)=x**3-x
gnuplot还支持?:这种C风格的函数.比如
f(x) = x < 1 ? 1 : x < 2 ? 3 : 5
就是f(x) =1 if x<1, =3 if 1<=x<2 =5 otherwise
然后绘制上述两自定义函数的图像:
plot y(x), z(x)
还可以直接这样作:
plot y(x) = x**2+log(x), y(x), z(x)=x**3-x, z(x)
- 从文件中读取数据并绘图:
使用foo.dat第1列(作为x)和第2列(作为y)来画图
plot "foo.dat" using 1:2
使用foo.dat第1列和第2列作为数据,但每2行skip掉一行
plot "foo.dat" using 1:2 every 2
使用foo.dat第1列(作为x)和第2列(作为y)做第一条曲线,使用foo.dat第1列(作为x)和第3列(作为y)做第二条曲线
plot "foo.dat" using 1:2, "foo.dat" using 1:3
foo.dat第3列作为errobar:
plot "foo.dat" using 1:2:3 with yerrorbars
foo.dat的第二列除以第一列作为y值
plot "foo.dat" using 1:($2/$1)
foo.dat分为若干个block(block之间用两行回车隔开), 使用第2个block绘图
plot "foo.dat" index 1 using 1:2
- 重绘:
replot
- 指定曲线的名称:
plot "foo.dat" using 1:2 title "sample curve"
曲线样式设定
- 指定曲线种类
曲线种类包括`lines`, `points`, `linespoints`, `impulses`,
`dots`, `steps`, `fsteps`, `histeps`, errorbars, `xerrorbars`,
`yerrorbars`, `xyerrorbars`, errorlines, `xerrorlines`,
`yerrorlines`, `xyerrorlines`, `boxes`, `filledcurves`, `boxerrorbars`,
`boxxyerrorbars`, `financebars`, `candlesticks`, `vectors`
plot "foo.dat" using 1:2 with lines # 用线条画图 plot "foo.dat" using 1:2 with points # 用点画图 plot "foo.dat" using 1:2 with linespoints # 用点线结合的方式画图 plot "foo.dat" using 1:2 with boxes # bar-chart plot "foo.dat" using 1:2:(sprintf("%.2f", $2)) with labels # 在图上标注数字
更多的曲线样式比如financebars等 参见Plot Style , errorbars
plot "foo.dat" using 1:2:3:4:(width)\ with boxerror fs pattern 1 #x:mean:min:max:box_width
给定了曲线样式, 它的还有四种参数可以自行设定:linetype, linewidth, pointtype, pointsize. 可以用test 命令查看所有支持的style.
- 指定曲线颜色(linetype)
plot "foo.dat" using 1:2 with lines linetype 1
lt(linetype)指定点或者线的颜色-1=black 1=red 2=grn 3=blue 4=purple 5=aqua 6=brn 7=orange 8=light-brn
或者通过更直接的linecolor方式指定颜色(gnuplot 4.2 or later),比如
plot "foo.dat" using 1:2 with lines linecolor rgb "red" plot "foo.dat" using 1:2 with lines linecolor rgb "#ff0000"
- 指定曲线宽度(linewidth)
plot "foo.dat" using 1:2 with lines linewidth 6
- 指定marker(pointtype)
可以单独对每条曲线指定marker size,
plot "foo.dat" using 1:2 with points pointsize 2
也可以对所有曲线指定(默认大小为1)
set pointsize 2
如果使用points 或者linepoints画曲线的话,这里的piont相当于marker.可以用 pointtype和pointsize指定marker的样式和大小。
pt指定marker的种类1=diamond 2=+ 3=square 4=X 5=triangle 6=*
- 自定义linestyle
如果觉得在plot语句中使用上述这些曲线修饰太麻烦,有碍观瞻,可以实现设定好一个linestyle, 然后在plot语句中指明使用该种style. 比如
set style line 1 lt 1 lw 1 lc rgb "red" set style line 6 lt 2 lw 3 lc rgb "blue" plot sin(x) w l linestyle 1, cos(c) w lp linestyle 2
- 设定坐标轴名称:
set xlabel "time(t)" set ylabel "A"
使用LaTeX数学符号:
set ylabel "{/Symbol f_i}"
- 设定坐标轴为logscale:
set logscale x
取消logscale的x轴
unset logscale x
- 坐标轴的刻度的格式
每个刻度值后面加上百分号
set format x "%g%%"
以指数形式表现, 比如10^1, 10^2,10^3而不是10, 100, 1000
set format x "10^{%L}"
- 设置坐标轴的范围
set xrange [-3:65] set yrange [ 4:14]
也可以在绘制的时候指定:
plot [-3:65] sin(x)
- 指定坐标轴刻度
set xtics ("x=1" 1, "x=10" 10, "x=100" 100)
- 指定坐标轴刻度间隔宽度
set xtics 100
- 指定坐标轴刻度起始值和间隔
set xtics 0, 100 #坐标轴小于0的部分就没有刻度了
- 去除坐标轴刻度的mirror(x2,y2默认不在x,y上有mirror, 但是x,y默认在x2,y2上有)
set ytics nomirror #y坐标轴的tics在y2上没有mirror
- 将X坐标值作为日期来显示
set xdata time set timefmt "%s" #输入时间数据形式为time()函数返回值 set format x "%b/%y" #输出时间数据形式为month/year
- 图例的位置可以是"left", "right", "top", "bottom", "outside" 和 "below",
默认是"right top",
set key left bottom set key outside
也可以用坐标指定(这里的坐标是指图例中第一行文字和符号之间的中点坐标)
如果你使用的gnuplot 4.6以下set key 100,40
如果你使用的gnuplot 4.6以上
set key at 100,40
unset key
- 输出显示在屏幕上:
set term x11
- 输出为eps文件(默认输出在stdout上,所以你将看见大批ps指令):
set term postscript eps enhanced
- 输出为png文件(默认输出在stdout上,所以你将看见大量binary被输出):
set term png
- 将输出放在文件上
如果另存为eps文件
set output "foo.eps"
如果另存为png文件
set output "foo.png"
- 设定X轴与Y轴的横纵比例为3:1
set size ratio 3
- 设定整个figure(包括了坐标轴以及边距)的横纵比例为2:1(默认值是1:1)
set size 2,1
- 生成figure的绝对大小是和terminal相关的
- 网格
set grid set grid y unset grid
- 边框. 边框的设定可见这里. 简单说来就是通过一个掩码来指定用哪几个边框1(bottom), 2(left), 4(top), 8(right)
unset border # 没有边框 set border 3 #只留下左边和下边的边框
- 消除生成的eps周围过多的margin
$eps2eps input.eps output.eps
- 在指定坐标上绘制label
set label center at 11.5,1.5 "My-Fav-Label!" font ",6"
- 读取并执行一个gnuplot文件,比如把一些命令或者设定放在一个文件里
load "your-gnuplot-file"
参考:
[1] 史上最好的gnuplot参考,有木有?
[2] set命令可以设定的参数
[3] gnuplot 使用技巧
[4] 和latex的psfrag配合使用
[5] Gnuplot tricks: 相当赞的一个帖子
[6] Gnuplot的demo,可以照着选自己需要的样式
No comments:
Post a Comment