Cycoe@Home

Gnuplot 绘图第三弹-颜色与样式

前两弹已经介绍了使用 Gnuplot 绘制图像的一些基本操作,在第三弹中我们将看到如何对 图像进行美化。

1 设置曲线的颜色

# 设置全局的线宽,包括曲线、边框、刻度
set term pngcairo lw 4
# 将边框、刻度重新设置为 .25
set border lw .25
set key top left

# 使用 =show colors= 查看更多颜色,注意十六进制的颜色也要单引号
plot [0:1] x**0.5 lc rgb 'orange', x lc rgb 'steelblue',\
     x**2 lc rgb 'bisque', x**3  lc rgb '#2e8b57'
c3-color-of-curves.png

2 自定义曲线的样式

# png 后端不支持显示 dash ,注意此处切换至 pngcairo
set term pngcairo
set key top left
set style line 1 dashtype 2 lw 4 lc rgb '#990042'         
set style line 2 dashtype 3 lw 3 lc rgb '#31f120'         
set style line 3 dashtype 4 lw 3 lc rgb '#0044a5'         
set style line 4 dashtype 5 lw 4 lc rgb '#888888'         

# 此时仍需手动指定曲线样式,要想自动指定,可设置 =set style increment userstyles=
# 系统会自动在用户设置的样式中循环,=set style increment default= 恢复默认
plot [0:1] x**0.5 ls 1, x ls 2, x**2 ls 3, x**3 ls 4
c3-style-of-curves.png

3 透明的技术

set term pngcairo
# pattern 一样可以设置透明度 =style fill transparency pattern n= 其中 n 是
# pattern 的序号,这里的透明指的是 pattern 中间的镂空部分可以看到后面
set style fill transparent solid 0.3

plot [0:pi] sin(x)**2 with filledcurves above y1=0 lc rgb  '#00ffff',\
     0.75*cos(2*x)**2 with filledcurves above y1=0 lc rgb '#aa00aa'
transparency.png

4 带点的线

plot sin(x)/x with linespoints pointsize 2 pointtype 6 lw 2
c3-points-with-curves.png

5 定制点的样式

set key top left

# 此行告诉 Gnuplot 我要设置的是 linespoints 的样式而不是 lines 的样式
set style function linespoints
# 此处 pi 是指 pointinterval,指多少个采样点放置一个 Marker
set style line 1 lw 4 lc rgb '#990042' ps 2 pt 6 pi 5
set style line 2 lw 3 lc rgb '#31f120' ps 2 pt 12 pi 3
set style line 3 lw 3 lc rgb '#0044a5' ps 2 pt 9 pi 5
set style line 4 lw 4 lc rgb '#888888' ps 2 pt 7 pi 4

plot [0:1] x**0.5 ls 1, x ls 2, x**2 ls 3, x**3 ls 4
c3-point-style.png

6 改变图像的大小

# 此处的 size 对于 eps 等矢量图来说绝对尺寸并没有意义,只是表示长宽比,设为 6,3
# 也是一样的效果,但是对于 png 来说只能设置绝对尺寸
set term pngcairo size 600,300
set key off
plot sin(x)
c3-plot-size.png

7 改变 Axes 的大小

set key off
set size .75,.75
plot sin(x)
c3-axes-size.png

8 绘制对象

unset key
unset tics
set object 1 circle at graph .5,.5 size graph .25 fillcolor rgb 'blue'\
    fillstyle solid arc [0:30] front
set object 2 circle at graph .5,.5 size graph .25 fillcolor rgb 'red'\
    fillstyle solid arc [30:80] front
set object 3 circle at graph .5,.5 size graph .25 fillcolor rgb 'orange'\
    fillstyle solid arc [80:180] front
set object 4 circle at graph .5,.5 size graph .25 fillcolor rgb 'green'\
    fillstyle solid arc [180:240] front  
set object 5 circle at graph .5,.5 size graph .25 fillcolor rgb 'sandybrown'\
    fillstyle solid arc [240:360] front

plot [0:1][0:1] -1
c3-plot-objects.png
Author: Cycoe (cycoejoo@163.com)
Date: <2020-05-05 Tue 21:41>
Generator: Emacs 28.0.50 (Org mode 9.3)
Built: <2020-05-21 Thu 20:09>