gnuplot多组数据绘图实例

以前Okumura-Hata模型分析,使用了MATLAB进行绘图,后面就想着学习一下gnuplot的多组数据绘图方法,而后用gnuplot完成这个绘图。(除了多组数据的绘图,这里还介绍了gnuplot曲线样式,图例设置以及添加文字说明这些功能的实现。)web

先看结果:
在这里插入图片描述
下面介绍一下绘图的过程:编程

使用C语言编程产生6组数据。这里给出其中一组数据产生的代码:ide

#include<stdio.h>
#include<math.h>

int main()
{
	double f_c=900;
	double h_te=30;
	double h_re=1;
	double L_city;
	int i;
	int d;

	for(i=1;i<=20;i++)
	{
		d=i;
		L_city= 69.55+26.16*(log10(f_c))-13.82*(log10(h_te))-(3.2*(log10(11.75*h_re))*(log10(11.75*h_re))-4.97)+(44.9-6.55*(log10(h_te)))*(log10(d));
		printf("%d %f\n",i,L_city);
	}
	return 0;
}

而后在命令窗口生出数据文件(具体方法以前的文章有写到),在6个数据文件都生成后就能够开始进行画图了。svg

首先在数据文件的目录下输入gnuplot命令:学习

E:\tcc_project\Hata>gnuplot

设置横纵坐标范围,横纵坐标名称:code

gnuplot> set xrange [0:20]
gnuplot> set yrange [90:180]
gnuplot> set xlabel ‘d/Km’
gnuplot> set ylabel ‘L<dB>’

去除图例(由于我打算本身添加说明):xml

gnuplot> unset key

设置label对图像进行说明:blog

gnuplot> set label 1 “city” at 4,110
gnuplot> set label 2 “suburb” at 6,140
gnuplot> set label 3 “country” at 8,170
gnuplot> set label 4 “o – 900MHz” at 14.5,110 
gnuplot> set label 5 “x – 700MHz” at 14.5,105

进行多条曲线绘图:图片

gnuplot> plot “Hata1_1.dat” u 1:2 w lp lt -1 pt 4,\
>”Hata1_2.dat” u 1:2 w lp lt -1 pt 4,\
>”Hata1_3.dat” u 1:2 w lp lt -1 pt 4,\
>”Hata1_4.dat” u 1:2 w lp lt -1 pt 1,\
>”Hata1_5.dat” u 1:2 w lp lt -1 pt 1,\
>”Hata1_6.dat” u 1:2 w lp lt -1 pt 1

而后就能够获得最后的图像了。ci

补充:关于gnuplot做图命令的说明

① 点线风格

linestyle——连线风格
linetype——连线种类
linewidth——连线粗细
linecolor——连线颜色
pointtype——点的种类
pointsize——点的大小

这些命令是能够缩写的,就像我写的 :

gnuplot> plot "Hata1_1.dat" w lp lt -1 pt 4

下面给出了一些样式:
连线种类:
在这里插入图片描述
点的类型:
在这里插入图片描述

② 图例设定

这里咱们用到的是去除图例设定(由于我打算本身添加说明)命令为:

gnuplot> unset key;

下面是对图例位置设定的一些命令:

gnuplot> set key left           %放在左边,还能够使用right
gnuplot> set key bottom         %放在下面,默认放上面
gnuplot> set key outside        %放在外面
gnuplot> set key left bottom    %能够将上面的进行组合,这个表示左下
gnuplot> set key 0.5,0.6        %将图例放在(0.5,0.6)位置

③ 多组数据绘图

对于多组数据的绘图,先生成对应数据文件,就能够使用gnuplot画图了:

gnuplot> plot “Hata1_1.dat” u 1:2 w lp lt -1 pt 4,\
>”Hata1_2.dat” u 1:2 w lp lt -1 pt 4

④ 添加文字说明

须要在图像中添加一些文字时,就要用到标签,命令以下:

gnuplot> set label 1 “city” at 4,110

这里使用at设置label的位置,默认是坐标轴对应的坐标位置。