Ubuntu環境下使用gnuplot由數據表繪製曲線圖以及gnuplot繪圖腳本使用

在ubuntu中安裝NS-3之後,編譯DASH仿真器Simulation,在由自適應算法得到仿真結果後可以直接導出數據表,包含仿真時間、每次跳轉的視頻切片的BitRate等等,這時候可以在Linux環境下安裝Gnuplot繪圖工具:

sudo apt-get install gnuplot 

執行gnuplot的test:

>gnuplot
> set terminal png size 1080,720                   
> set output "test.png"
> test

得到檢測圖:

NS-3仿真器進行DASH算法仿真得到數據表dash1.dat,dash2.dat兩個數據表(或者更多,與畫兩個折線一樣的過程),數據表的格式如圖所示:

在數據表所在目錄下執行gnuplot:

>gnuplot   #使用gnuplot繪圖
>set terminal png size 1080,720   #建立1080*720空白圖片
>set title "Case:Bandwidth=1Mbps"   #註明曲線圖標題
>set output "Simulatiaon.png"   #設置文件名
>set xlabel "Simulation time(s)"   #設置X軸名稱
>set ylabel "BitRate(Mbps)"   #設置y軸名稱
>set yrange [0:1200000]
>set ytics ("0" 0,"0.2" 200000,"0.4" 400000,"0.6" 600000,"0.8" 800000,"1.0" 1000000,"1.2" 1200000)   #設置y軸範圍、刻度參數
>plot "dash1.dat" using 1:7 w lp pt 5 title "dash1","dash2.dat" using 1:7 w lp pt 7 title "dash2" 
#分別取dash1和dash2數據表的第1和第7列分別作爲x,y變量繪製曲線
>quit   #退出軟件

在以上代碼中,“set ytics ("0" 0,"0.2" 200000,"0.4" 400000,"0.6" 600000,"0.8" 800000,"1.0" 1000000,"1.2" 1200000)”   set ytics ()中引號內容每個逗號區分一個刻度,此處每個刻度有三個設置參數:顯示字符、刻度位置、刻度等級,其中刻度等級省略則默認爲0(即顯示該刻度)。

上面的代碼執行出來可以得到由gnuplot繪製的折線圖。

 

同理,由數據表dash1.dat,dash2.dat和dash3.dat三個數據表可以畫出三條折線同圖的情況:

挨個執行gnuplot繪圖命令比較繁瑣,如果作得圖很多,重複輸入命令則顯得麻煩。可以使用腳本文件,每次只要修改一下腳本文件中的基本參數(繪圖的標題等等),就可以省去不斷輸入命令的繁瑣。gnuplot執行腳本的格式爲:

gnuplot file #file爲shell腳本文件

譬如,我們可以編寫一個plot1腳本文件(腳本文件與數據表.dat文件置於同一個目錄下)

#!/bin/bash
set terminal pngcairo size 1080,720 lw 2 font "AR PL UKai CN,14"
#建立空白圖片,設置字體
set title "腳本繪圖-fupenzi"
#註明標題
set output "dash1.png"
#設置文件名
set xlabel "仿真時間(單位:s)"
#設置X軸名稱
set ylabel "碼率(單位:Mbps)"
#設置y軸名稱
set yrange [0:1200000]
#設置y軸範圍
set ytics ("0" 0,"" 100000,"0.2" 200000,"" 300000,"0.4" 400000,"" 500000,"0.6" 600000,"" 700000,"0.8" 800000,"" 900000,"1.0" 1000000,"" 1100000,"1.2" 1200000)
#設置y軸刻度參數
set grid
#設置網格線
plot "dash1.dat" using 1:7 w lp pt 5 title "切片比特率"
#分別取數據表1和7列作爲x,y變量繪製曲線
quit
#退出軟件

執行結果:

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章