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 key )
set 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) #画图

最终结果为:

时间: 2024-11-13 00:40:41

gnuplot画图的相关文章

GNUPLOT画图工具

http://blog.csdn.net/codingkid/article/details/7211492 不得不说这个工具实在是太强大了. 1.首先命令简单,不会有那么多的语法问题. 2.其次画图速度非常快,因为输入数据是文本格式,输出格式如果也是文本就是眨眼功夫感觉不到渲染,当然输出格式非常丰富. 3.还有跨平台性能也很好,linux和windows+X11或windows版的支持的都非常好,工具小巧好用. 4.而且和C可以无缝结合,适合运营和运维人员来统计数据生成图例.   虽然很小,但

gnuplot画图技巧总结

--------------------------------------------------------------------------------------------------------- 本文欢迎转载,转载请附上链接http://blog.csdn.net/iemyxie/article/details/41548583 ----------------------------------------------------------------------------

gnuplot画图中文标注相关问题

gnuplot是一个基于命令行的开源跨平台画图工具包,画图功能非常丰富.不过最近在考虑如何在gnuplot图中添加中文标注的过程中遇到了一些问题,记录如下. gnuplot支持多种的输出格式,比如png.svg.eps.pdf.因为论文需要,一般我们要求得到的矢量图的格式,采用eps或者pdf作为输出样式的情况居多. 当直接绘制输出eps格式时,输出的eps文件会自动裁边,将多余的空白去掉(相当于自带gsview里面的automatically calculating bounding box操

画图模板

Matlab画图模板 clear; clc; figure; newplot(); % markers={'-square','--<',':o','--d','-^','-v','-square','--<'}; markers={'--square','--<','--o','--d','-square','-<','-o','-d'}; cols={'b','r','g','y','m','r','b','g'}; %cols={'c','r','k','b','c','r'

转:openTSDB 2.0 安装

OpenTSDB-2.0.0安装布署 2014-02-27 11:07:49|  分类: 大数据 |  标签:hadoop  |举报|字号 订阅 1.介绍OpenTSDB是一个架构在Hbase系统之上的实时监控信息收集和展示平台.它支持秒级数据采集所有metrics,支持永久存储,可以做容量规划,并很容易的接入到现有的报警系统里.OpenTSDB可以从大规模的集群(包括集群中的网络设备.操作系统.应用程序)中获取相应的metrics并进行存储.索引以及服务,从而使得这些数据更容易让人理解,如we

pdf中内嵌字体问题

在提交论文pdf到IEEE时总要检查字体是否为内嵌的,查看pdf中所有字体及是否内嵌可查看:http://sinme.blog.sohu.com/120043575.html. 具体做法是: 在pdf格式的文件中,点"文件"-> "文档属性"-> "字体",显示的就是你文档中用的所有字体了,每一个字体后面,如果注明了"embeded(已嵌入)"或"embeded subset(已嵌入子集)",就

libsvm使用方法总结

1.所需要软件下载: (1)libsvm(http://www.csie.ntu.edu.tw/~cjlin/libsvm/) (2)python (3)gnuplot 画图软件(ftp://ftp.gnuplot.info/pub/gnuplot/) 这里只考虑windows的环境: 1. 下载libsvm的zip包,只要解压到某个文件夹就好就好(随便D:\gjs\libsvm) 2.安装python(我的是2.7.3) 3.下载好gnuplot ,直接解压就好,无需安装(C:\gnuplot

一个简单的ns2实验全过程

实验名称:比较tcp和udp的丢包行为 试验目的:1. 熟练用ns2做网络仿真试验的整个流程:2. 练习写tcl脚本,了解怎么应用http和rtp:3. 练习用awk处理trace数据,了解怎么计算丢包率:4. 练习用gnuplot绘制曲线图,熟练gnuplot的使用. 实验步骤:1.确定网络拓扑.   一个简单的三个节点的拓扑,两个运行cbr(const-bitrate)应用的发送结点,一个接收结点.一条链路使用tcp链接,一条链路使用udp连接.如图. 2.写tcl脚本. # jiqing

简单的多对一传输ns2仿真

实验名称:简单的多对一传输仿真 实验目的:1.研究怎么实现多对一传输. 实验步骤: 1.写c++代码并注册报文头. 先说一下多对一传输的方式.最开始,接收端发送控制报文给所有的发送端,告诉他们要发送多少报文. 发送端按要求的数量发送完报文后,给接收端一个ack信息. 接收端收到所有发送端的ack报文后,则重新发送控制报文给所有的发送端.这样周而复始. 接收端为了和多个发送端通信,需要有多个agent,而每个app只能连接到一个agent上.如此,接收端上就有多个app,那么这多个app怎么通信呢