最近幫博士後學姐做實驗畫圖,圖需要嵌入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