最近帮博士后学姐做实验画图,图需要嵌入Latex,故使用GnuPlot做矢量图(eps),留下记录。
基础学习:
请参考:http://www.cnblogs.com/aioria0622/archive/2008/09/14/1290776.html
实例一:
需要做的图:
使用的技巧主要有:
1.同时画多条线;2.载入数据作图;3.不同线型选择;4输出为eps和jpg;set key left #设置图例位置
set xlabel "dimensions" #设置座标轴名称
set ylabel "time(sec)"
set logscale y #设计座标为对竖座标
# 设置输出为jpg 方便预览
set term jpeg
set out "f8.jpg"
filename = 'f8.txt' #载入数据文件
plot filename using 1:2 with linespoints pt 1 title 'SFS',filename using 1:3 with linespoints pt 2 title "RPS",filename using 1:4 with linespoints pt 3 title "APS",filename using 1:5 with linespoints pt 4 title "GPS",filename using 1:6 with linespoints pt 5 title "PPPS"
# 设置输出为eps
set term post eps
set out "f8.eps"
replot
其中,using 1:2 代表使用数据第1列为横座标、第2列为纵座标
线型参考:
实例二(柱形图)
要做的图:
需要用的技巧:
1.设置为柱形图;2.不同的填充模式
脚本如下:
set mytics 2
set style data histogram #设置为柱形图(并列表示 设置为rowstacked 则是将几组数据垒起来)
set style histogram clustered gap 1 #gap 1 就表示各簇数据之间空白的宽度等于数据柱宽度的 1 倍
#set style fill solid 1.0 border
set style fill pattern 4 border -1 #不同的填充模式
set ylabel "Number of accesses"
set title "Number of accesses"
set ytics 2500
set yrange[0:20000]
set term jpeg
set out "f07.jpg"
plot "f07.txt" using 2:xticlabels(1) title columnheader(2), '' using 3:xticlabels(1) title columnheader(3)
set term post eps
set out "f07.eps"
replot
注意:xticlabels(1),这表示使用第 1 列的内容作为每个数据的 X 轴标注。另外,title 参数后面跟了一个
columnheader(n) 函数,这表示使用第 n 列的第一行内容作为每组数据的
title。数据格式如下:
Method CompanyDB NBA
Naive 4725 17500
SLA 4325 11500
ISLA 3000 7500
BBA 2700 6200