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
#退出软件

执行结果:

猜你喜欢

转载自blog.csdn.net/qq_34041083/article/details/78253445
今日推荐