gnuplot,一个命令行交互式的绘图工具
gnuplot学习资料:
gnuplot本身自带的官方使用教程,输入help交互式打开
help
可以找马欢老师的gnuplot中文教程:http://ouc.ai/zhenghaiyong/courses/tutorials/gnuplot/gnuplot-zh.pdf
gnuplot的下载:
查看文章:gnuplot下载及基本使用_张海玲的博客-CSDN博客_gnuplot
提供网盘下载win版gnuplot程序
按win+R,再输入:
sysdm.cpl
在环境变量,系统变量中将安装目录的bin文件夹放进path变量里。
在cmd里输入gnuplot即可进入程序
gnuplot的简单使用:
查看和切换工作目录:
pwd #查看工作目录
cd "C:/Users/TSPC/desktop" #工作目录切换到桌面
设置图例:
1.显示或隐藏图例:
set key #显示标题,默认是绝对路径的文件名
set k #简写:
unset key #不显示标题
unset k
2.自定义图例:
set key #显示图例
plot "rmsd.dat" title "main" #对数据rmsd.dat进行绘图
#修改图例的字体加上font关键字
set k font ",10" #使用默认的字体,字体大小为10
#修改图例外方框的线条风格:
#使用ls关键字或是lc、dt、lw等关键字
3.图例的位置和加上外方框:
set k box bottom left #加上外方框,位于左下角
set k center bottom #图例位于下角中央
位置的关键字:top、bottom、left、right、center
4.图例的宽高进行缩放:
set k width 2 height 2 #简写为w 2 h 2
线条的风格:
1.修改线条风格和颜色:
plot "data.dat" linetype 7 linecolor 0
plot "data.dat" lt 7 lc 0 #简写
2.输入test查看一些风格说明:
test
根据右侧的规定进行线条风格、点风格和颜色的修改
3.绘制线+点的曲线:
plot "rmsd.dat" with linespoints #有点有线
plot "data.dat" w lp #简写
设置只有点的曲线(默认情况)将w lp换为w p
设置只有线的曲线,将w lp换成w l
4.设置轴刻度范围和轴标签:
set xrange [0:1300] #设置x轴刻度范围,xrange简写 xr
set xlabel "ps" #设x轴标签,xlabel简写 xl
set ylabel "RMSD"
set title "rmsd.dat" #设置标题
plot "rmsd.dat" with lp #或是用replot
对图片保存为png格式:
set terminal png size 800,600 #设置保存图片的格式和尺寸
set output "rmsd.png" #生成对应路径下的文件
replot #简写rep
上面的步骤后虽然图片文件出现,但是图片没有内容,还需要下面的步骤:
set term wxt size 600,600 #显示图片的交互窗口的大小
rep #现在可以通过交互式查看图片效果,也成功保存图片
对于一个3列的数据,添加误差线:
第3列为误差值
plot "data.dat" using 1:2:($3/100) lc 6 lt 7 with errorbars
#with errorbars 简写为w e
using 1:2:($3/100) 使用3列数据,对第3列数据进行缩放100倍;with errorbars 使用第3列数据做为误差值
shift和+能对图片进行局部缩放。
图中每个散点都会加减上误差值,形成一条贯穿的表示范围的直线:
一个多列的数据,在图中绘制1列-2列的曲线和1列-3列的曲线:
plot "data.dat" using 1:2 title "1:2" ls 1 , \
"data.dat" using 1:3 title "1:3" ls 2
#plot关键字可以简写为p
用,分隔打开多个数据文件(这里打开同一个文件),分别用不同的列代表x、y轴数值。
linestyle 设置线条的风格
set style line 123 lc 1 lw 1 dt 1 ps 0.5 pt 5设置一类曲线风格的固定模板,编号为123
set style line [index] lc [index] lw [index] pt [index] ps [index] dt [index]
#line [index] #设置这个样式的代号
#lc 线条的颜色
#lw 线条的粗细
#pt 数据点的类型
#ps 数据点的大小
#dt 虚线还是实线,虚线的样式
#使用rgb颜色而不是指定的代号进行颜色修改:
set style line 1 lc rgb "#8b0000" lw 2
查看当前所有的linestyle模板:
#展示所有设置的曲线模板
show style line
将1号style加载到绘制的图像曲线里:
p "data.dat" ls 1
#使用代号为1的linestyle
修改字体的大小和格式:
#图例的字体:
set k font "Arial,14" #格式为Arial,大小是14
#设置x轴标签的字体:
set xl "ps" font ",16" #大小为16,字体格式用默认
在背景中添加网格线:
set grid
#后可跟lw、lc等关键字
#取消网格线:
unset grid
显示图像边界线:
#数值之和表示显示多少条边界线:
#下边线:1
#左边线:2
#上边线:4
#右边线:8
#显示左边线和下边线,需要的数值和是1+2=3,命令如下:
set border 3
边界线粗细:
set border [sum] lw [index]
#sum:设置显示哪些刻度线
#index:刻度线粗细
左上边界都消失了,但是其刻度还是存在,用命令让对称的刻度(成镜像)消失:
set tics nomirror
若是只是取消单独x轴的镜像刻度线,使用set xtics nomirror
刻度值和刻度线:
1.修改刻度下标值:
set xticks ("zero" 0,"five" 5) #将x轴的原刻度值0换成zero,原刻度值5换成five
2.修改刻度值为希腊字母:
#将x轴原刻度值100换成希腊字母α:
set xtics ("{/Symbol a}" 100)
不需要输入完整的单词,只需要输入首字母;要输出γ,不需要输入gamma,只需要输入g
3.修改刻度值范围:
set tics [min],[offest],[max]
#设置刻度的最小值,间隔和最大值
若是适用于x、y轴,就用tics关键字,单独适用于x轴,就用xtics关键字,y轴则是ytics关键字
4.设置刻度线的长度:
set xtics scale 1 #设置x轴刻度长度缩放1倍
5.添加关键字font,设置刻度值的大小:
set xtics 0,5,20 font ",13" #设置x轴刻度范围0~20,刻度间隔5,字体大小13
gnuplot绘制热图:
使用的数据集:“pca-out.dat”
数据集由amber的cpptraj模块生成,前两列数据是x、y刻度,第3列数据是表示能量的强弱
对于用cpptraj生成的*.gnu文件,在gnuplot窗口里,输入load *.gnu 即可运行文件
在文件末尾添加set output "filename" 可输出图片文件
用换行符空开的前后两份数据表示不同的x刻度对应的y刻度值和颜色的深浅
绘制热图(heatmap):
plot "pca-out.dat" with image
因为数据集中数值之间差值较大,所以点和点之间的色块渐变效果很差,边缘很清晰。
由于x轴范围大于实际数据集x值范围,出现一些留白的空间,修改x轴范围将留白空间删掉:
#根据实际数据x,y范围修改轴范围:
set xr [-28.2:21.0]
set yr [-17.7:17.1]
rep
效果好多了:
在教程中,x、y范围都是0~100,但在绘制出的图像里却是明显的长方形图像:
修改x、y轴比例1:1
set size ratio 1
小细节:轴上的刻度线一般是朝图内延长的,现在图内被颜色盖满,需要让刻度线朝外
set tics out #指定x轴或y轴换关键字xtics或ytics
set tics in #该为刻度线朝内
set tics scale 2 #将刻度线长度进行缩放
set tics nomirror #取消刻度线的镜像(删掉上、右边界的刻度线)
现在右侧色条刻度是0~0.035,修改色条的范围:
set cbrange [0.01:0.03] #cbrange关键字可以简写为cbr
rep
在实际数据集里z列数据值小于0.01的都会赋予色条中0.01对应的颜色,而大于0.03的数值则是赋予色条里0.03对应的颜色:
unset cbr #对操作进行取消,色条变回原来的亚子
更换色条的模板:
软件提供的9个模板,第一个traditional pm3d 就是默认的使用模板
更换色条模板的命令:
关键字palette可以简写为pal
set palette rgb 7,5,15 #使用traditional pm3d
set palette rgb 3,11,6 #使用green-red-violet
set palette rgb 23,28,3 #使用ocean
set palette rgb 21,22,23 #使用hot
set palette rgb 30,31,32 #使用color printable on gray
set palette rgb 33,13,10 #使用rainbow
set palette rgb 34,35,36 #使用AFM hot
set palette rgb 3,2,2 #使用HSV model
set pal gray #使用gray palette
教程视频里使用的数据是一个组向量场数据,可以绘制出场强的方向向量:
一般绘制热图的标量数据,一列数据是X Y 能量强弱值(3个数据值)
矢量场需要X1 Y1 X2 Y2能量强弱值(5个数据),用(X1,Y1) (X2,Y2)4个数据绘制矢量方向箭头
plot "data.dat" wiith image ,\
"data.dat" using 1:2:($4/sqrt(($4)**2+($5)**2)): ($5/sqrt(($4)**2+($5)**2)) every 5:5 \
with vectors lc -1 filled notitle
($4/sqrt(($4)**2+($5)**2)): ($5/sqrt(($4)**2+($5)**2)) 将向量箭头单位化
lc -1 filled 使用黑色、填充箭头
教程参考: