Gnuplot简介

Gnuplot是一款非常强大的跨平台作图工具。小到画各种数学函数图,大到写作科技论文、实现各种复杂的数据公式,它都能轻松应对。秉承UNIX的优良传统,gnuplot使用纯文本作为输入,因其包含的大量命令和变量,使得其有着无与伦比的表现力。下面的两个图形,就是gnuplot的杰作:

对gnuplot 作图有兴趣的同学,可以参考其官网的手册,其中有大量的范例。

插入一点业务背景

我前面有篇文章介绍了一键搭建blackhole从库的工具,其中提到,blackhole从库的一个用途是作为某种分析程序的数据源。实际上,微博相关的几个关键数据指标,包括用户、关注、博文、转发、评论、私信等,都搭建了对应的blackhole从库,我们的分析程序会定期解析binlog,来分析用户在某个时段的活跃程度。为了得到近乎适时的统计数据,我采用crontab每隔5分钟在blackhole从库上执行一次flush logs,紧接着分析被切割的日志。这样就可以立即得到粒度为5分钟的用户活跃统计数据,再保存到数据库中,用各种方法展现,环比、同比、平均值等,都可以很容易的获得。

利用gnuplot作图

有了数据之后,采用rrdtool、excel、google API等都可以作图。我的需求是,每天上午10点,定时邮件发送前一天的统计数据,并附上直观的图形说明。最终,我选择采用gnuplot来作图。 附数据如下(数据非真实数据。一共是7列,其中日期和时间整体作为一列,别混淆):

2012-10-13 03:45:16    1893    61564  28476  37180  265190  8794

2012-10-13 03:50:16  1823    60016  27296  38648  276206  8753

2012-10-13 03:55:15  1606    58628  26688  32292  262998  8377

2012-10-13 04:00:15  1539    57988  25628  36472  249984  8079

2012-10-13 04:05:14  1641    58552  25432  35064  233832  7493

2012-10-13 04:10:16  1731    59808  25108  36348  235218  6909

2012-10-13 04:15:15  1720    56444  24124  38072  228382  6892

2012-10-13 04:20:15  1680    53952  23088  38480  233300  6742

2012-10-13 04:25:14  1582    53600  22420  37072  232974  6477

2012-10-13 04:30:16  1531    53560  22612  37896  229090  6168

作图的脚本如下:

#!/usr/bin/gnuplot

set terminal png #输出格式为png文件

set output "image_output_file.png"  #指定数据文件名称

set title "KPI"

set ylabel 'net added count'

set yrange [0:700000] #设置Y轴的范围

set key right top height 3 spacing 2  #设置图例

set border 3 lt 3 lw 2  #这会让你的坐标图的border更好看

set grid #显示网格

set key box #它把图例用一个box装起来

set xtics nomirror rotate #只需要一个x轴

set ytics mirror #只需要一个y轴

set mytics 5 #可以增加分刻度

set mxtics 1

set pointsize 0.4 #点的像素大小

set datafile separator '\t' #数据文件的字段用\t分开

#注意表的数据导出的时候默认是按照tab来分隔的

set xdata time #x轴代表时间

set timefmt "%Y-%m-%d %H:%M:%S"  #数据文件中时间的格式

set format x "    %Y-%m-%d %H:%M"    #x坐标轴显示的数据

#设置图像的大小 为标准大小的2倍

set size 2.3,2

plot 'unit_data.txt' using 1:2 w lp lt 1 lw 2 title "第二列", 'unit_data.txt' using 1:3 w lp lt 2 lw 2 pt 7 title "第三列", 'unit_data.txt' using 1:4 w lp lt 3 lw 2 title "第四列", 'unit_data.txt' using 1:5 w lp lt 4 lw 2 title "第五列", 'unit_data.txt' using 1:6 w lp lt 5 lw 2 title "第六列", 'unit_data.txt' using 1:7 w lp lt 6 lw 2 title "第七列"

执行脚本,脚本会读取unit_data.txt中的数据,以第一列(日期和时间)作为x轴,第2到7列作为y轴显示出6条不同的曲线,如下图:

linux gnuplot 教程,图形绘制利器:Gnuplot相关推荐

  1. ai怎么让图片任意变形_AI入门基础教程-图形绘制变形及路径查找器

    原标题:AI入门基础教程-图形绘制变形及路径查找器 l 新建: l 界面: 多个预编辑区: l 存储格式: 1. .AI :AI软件默认的存储格式,相当于PS的PSD格式 2. .EPS:使用AI软件 ...

  2. matlab图形绘制经典案例,MATLAB经典教程第四章_图形绘制.ppt

    <MATLAB经典教程第四章_图形绘制.ppt>由会员分享,可在线阅读,更多相关<MATLAB经典教程第四章_图形绘制.ppt(32页珍藏版)>请在人人文库网上搜索. 1.Ma ...

  3. PHP极其强大的图片处理库Grafika详细教程(4):图形绘制

    该文章是接着上一篇文章:<PHP极其强大的图片处理库Grafika详细教程(3):图像属性处理>,是grafika教程的一个部分. 所有的教程目录 <1.图像基本处理> < ...

  4. MATLAB进阶教程第一节(图形绘制)

    本节是matlab进阶教程的第一节,头一次看的小白请先看完我的matlab入门基础,方便消化,对那些急需图形绘制的朋友将会有很大帮助! 一.二维图形的绘制 1.1plot函数 形式:plot(X,Y, ...

  5. letswave教程:脑电数据图形绘制、批处理以及脚本生成

    letswave教程:脑电数据图形绘制.批处理以及脚本生成 1 单主题图形生成 1.1 打开图形模块 1.2 创建子图 1.3 添加内容 1.4 设置轴参数 1.5 导出图形 2 多主题图形生成 2. ...

  6. python绘制分形图形教程_Python教程之绘制Mandelbrot集合

    原标题:Python教程之绘制Mandelbrot集合 一. 分形与混沌 自然界的很多事物,如树木.云彩.山脉.雪花.海岸线等,都呈现出传统几何学所不能描述的形状,这些形状都有如下的特性: 有着十分精 ...

  7. PHP极其强大的图片处理库Grafika详细教程(4):图形绘制 1

    接上文所有的教程目录 <1.图像基本处理> <2.图像特效处理模块> <3.图像属性处理> <4.图形绘制> 话不多说,我们接着上实例,要看基础描述,和 ...

  8. PHP图片处理库Grafika详细教程(4):图形绘制

    该文章是接着上篇文章,<PHP极其强大的图片处理库Grafika详细教程(3):图像属性处理>,是grafika教程的一个部分. 所有的教程目录 <1.图像基本处理> < ...

  9. autocad2007二维图画法_CAD二维图形绘制的教程

    一般来说,大家使用CAD绘制的图形都是二维的,这些二维图形其实不难.接下来就是学习啦小编精心整理的一些关于CAD二维图形绘制的教程的相关资料,供你参考. CAD二维图形绘制的教程 1.绘图菜单绘图菜单 ...

最新文章

  1. python制作图形化界面_python图形化界面设计(wxpython)一布局管理
  2. python opencv模板匹配多目标_基于opencv的多目标模板匹配
  3. Django - Django框架 简单介绍
  4. 牛客挑战赛30 C 小G砍树 换根dp+组合
  5. python tempfile自动删除_Python tempfile模块生成临时文件和临时目录
  6. Portainer容器管理软件,安装
  7. java4选择结构 二
  8. 【图像特征提取】基于脉冲耦合神经网络(PCNN)实现图像特征提取含Matlab源码
  9. Windows历史版本
  10. 基于频域的数字图像水印算法设计
  11. syn重发_SYN***原理及处理
  12. python爬取网站新闻_Python爬取网站新闻
  13. 【专题5: 硬件设计】 之 【30.案例三:碎纸机,DC-DC降压方法(电容降压原理)】
  14. Linux网络服务——DHCP
  15. 在网页中点击链接就可以和在线好友QQ聊天
  16. linux下TC+HTB流量控制
  17. big sur 虚拟机 网络_推荐收藏系列:一文理解JVM虚拟机(内存、垃圾回收、性能优化)解决面试中遇到问题...
  18. 神经网络模型训练简记(二)
  19. 存储过程中加CHAR(39)是什么意思
  20. UE4的HLOD代理浅谈

热门文章

  1. 同步时钟之hwclock命令(硬件-系统,系统-硬件)
  2. python 打开excel并在屏幕上呈现_python读取excel数据,并可视化展现
  3. 声音和音频设备属性无法设置
  4. Windows和Linux的环境变量
  5. Excel无法打开文件新建 XLSX 工作表.xlsx,因为文件格式或文件扩展名无效。请确定文件未损坏解决办法【笔记】
  6. 基于微信小程序的自习室预约系统设计与实现-计算机毕业设计源码+LW文档
  7. 在本机搭建FTP服务器
  8. python 指定证书验证_Python SSL证书验证问题解决方案
  9. .netMVC企业微信网页授权+注册全局过滤器
  10. CabloyJS一站式助力微信、企业微信、钉钉开发 - 钉钉篇