gnuplot画图

gnuplot 是一个用于生成趋势图和其他图形的工具。它通常用于收集基于时间的数据,同时也可以使用静态数据。
本文将简单的介绍下gnuplot的基本使用方法,安装教程的话,请自行google(or百度)。
首先介绍下gnuplot中的线型(linetype)、点型(pointtype)、线条宽度(linewidth)、点大小(pointsize)。
1. 线型(linetype ),主要用于设置线条的颜色,具体如下:
线型
2. 点型(pointtype),主要用于设置点得形状,具体如下:
点型
3. 线条宽度(linewidth)、点大小(pointsize)。两者都可以设置为整数或小数。

首先我们探讨下折线图:
假如已经的到的数据,并存放到txt中,数据如下:
数据

我们可以看出,存放数据的文件为test.txt
下面开始进入画图相关模式:

gnuplot> set terminal postscript eps color solid lw 2 enhanced "Times-Bold" 20 
#set terminal postscript eps这句话表示设置画图得到的格式,我们选择的是eps格式,后面的color表示画彩色图 ,solid表示画实线,lw 2(linewidth 2)线宽为2,enhanced "Times-Bold" 20 表示支持的字体格式。

这里写图片描述

set output "D:/paperhuatu/test.eps"#设置最终得到图片存在的路径
set xlabel 'X axis' font "Times-Roman, 15"  #设置坐标轴标注及字体字号
set ylabel "Y axis"#设置Y轴标注显示的标题(同x)
set key left #设置标注显示的位置(放在左边)
(默认位置在右上方。
set key left  %放在左边,有left 和right两个选项
set key bottom  %放在下边,只有这一个选项;默认在上边
set key outside  %放在外边,但只能在右面的外边
以上三个选项可以进行组合。如:
set key left bottom  %表示左下边
还可以直接用坐标精确表示图例的位置,如
 set key 0.5,0.6  %将图例放在0.5,0.6的位置处
如果要取消图例可以用:unset keyset yrange [0:0.64] #设置y轴的范围
set ytics 0,0.1,0.60 #设置x轴的刻度宽度
set xrange [3:60]  #设置x轴范围
set xtics 5,5,60 #设置x轴的刻度宽度
plot "D:/paperhuatu/test.txt" u 1:2 w lp lt 1 lw 1.1 pt 5 ps 1.2 t "Line_1" 
#将text.txt中的第二列数据(y值)画到图形中其中u 1:2表示选择数据第二列的值,(w lp lt 1 lw 1.1 pt 5 ps 1.2 t "Line1")
(==with linespoints lt 2 lw 2 pt 5 ps 1.5 t "XXX",#绘制线(lt)为绿色(2),线宽(lw)为2,点的形状(pt)为“■”,点的大小(ps)为1.5, 标题(t)为line1的图形)
set output #输出到指定目录

这里写图片描述
效果图
如果数据有多列(这里我们设为3)
数据
代码
结果

这里再介绍下:图样(style):gnuplot 描绘数据数据图形是以读入档案中的坐标值后,以图样绘上。gnuplot可提供9种图样,分别是:
(1) lines : 将相邻的点以线条连接。如 plot sin(x) with lines。
(2)points : 将每一点以一符号绘上。如 plot sin(x) with points
(3)linespoints : 同时具有lines 及 points 的功能。
(4)impulses : 将每一点画一垂直线至X 轴。如 plot sin(x) with impulses。
(5)dots : 将每一点绘一细点。如plot sin(x) with dots。
(6)steps : 以垂直线及水平线各一条来连接两点,形成梯形。如连接 (x1,y1),(x2,y2)两点,以(x1,y1)到(x2,y1)和(x2,y1)到(x2,y2) 两线段连接。如 plot sin(x) with steps。
(7) errorbars : 对每一点坐标值(x,y),画一由 (x,ylow) 至(x,yhigh) 的线段。并在线段两端做上 tic mark。如plot sin(x) with errorbars。
(8)boxes : The boxes style draws a box centred about the given x coordinate from the yaxis to the given y coordinate.如plot sin(x) with boxes。
(9) boxerrorbars : 组合errorbars 与 boxes 两者功能。如 plot sin(x) with boxerrorbars。

例如上图画为点状图:
仅仅把上次画图的plot语句改为:

plot "D:/paperhuatu/test.txt" u 1:2 w p lt 1 lw 1.1 pt 5 ps 1.2 t "Line_1","D:/paperhuatu/test.txt" u 1:3 w p lt 2 lw 1.1 pt 8 ps 1.2 t "Line_2","D:/paperhuatu/test.txt" u 1:4 w p lt 4 lw 1.1 pt 12 ps 1.2 t "Line_3"

w p(==with point)就是画点图了,之后需要什么图样(style)就可以自行选择了。
效果

柱状图:
test2.txt存放要画柱状图的数据如下:
数据格式

set style data histogram #设置画图格式为柱状图
set output "D:/paperhuatu/test2.eps" #保存图片的路径
set style histogram clustered gap 1
set style fill pattern 3 border -1
set ylabel "Time (sec)" #设置y轴名称
set size 0.66,0.8 #设置图形最终的缩放比例
set key left #图标位置
#set xtics rotate by -45 #x轴标示倾斜的角度
set x2range [103:104]  #设置x2(及最上边轴)的范围
set x2tics ("×103" 103) #设置x2(及最上边轴)在103处的别名
set yrange [0:19000] #设置y轴的范围
set ytics 0,3000,19000 #设置y轴的刻度宽度
set ytics ("0" 0, "3" 3000, "6" 6000, "9" 9000, "12" 12000, "15" 15000, "18" 18000) #设置在此位置显示的别名
plot "D:/paperhuatu/test2.txt" using 2:xticlabels(1) title columnheader(2), '' using 3:xticlabels(1) title columnheader(3), '' using 4:xticlabels(1) title columnheader(4), '' using 5:xticlabels(1) title columnheader(5) #画图

最终结果为:
结果

posted @ 2016-04-14 17:31  zsper  阅读(965)  评论(0编辑  收藏  举报