------------------------------------------------------------------------------------

欢迎转载,请附上链接

http://blog.csdn.net/iemyxie/article/details/41548583

-----------------------------------------------------------------------------------

最近用gnuplot画了不少图,关键字神马的每次用到都要重新去查使用文档,简直神烦。所以干脆将常用的技巧总结成文,以便日后查阅。

一、gnuplot简介

可能我说了半天还有人不造gnuplot是个啥东西呢。gnuplot,轻量级画图神器。放上维基百科的解释:gnuplot是一套跨平台的数学绘图自由软件。使用交互式接口,可以绘制数学函数图形,也可以从纯文字档读入简单格式的座标资料,绘制统计图表等等。它不是统计软件,也不是数学软件,它纯粹只是一套函数/资料绘图软件。它可以产生PNG,SVG,PS,HPGL,……等等开放的图形档案格式的输出,供文书处理/简报/试算表/……等等软件汇入。
功能:
绘画二维或三维的图像
绘画数学函数
从其他文档读入数据,绘画统计图表
被外部程式(如GNU Octave)调用

点击下载gnuplot

二、画点

先放一张博主初次接触gnuplot画的第一张图。

附上部分代码:

set term post eps color enh solid //固定格式
set term pdfcairo lw 2 font 'Times_New_Roman,8'
datafile='AfterP-H-kmeans++-k=6.data'
set output 'AfterP-H-kmeans++-k=6.pdf'
set title 'AfterP-H-kmeans++-k=6'
set multiplot //允许重复画
set key outside vertical //将标识置于图外并保持垂直排列
plot datafile using 7:1 title 'cluster0' with points lc rgb 'pink' 

a。

set :所有gnuplot设置均以set开头
• term :即terminal,终端,指示图片输入输出的格式。后面可以跟post eps,png,jpg等
• color :可以输出彩色图片和曲线
• enh :enhance,加强,可以输入各种符号,如希腊字母等。
• solid:可使用实体线。
• datafile=“XXX.data” 数据文件,文件可以没有后缀,或txt,或data都可以。
• set output “XXX.jpg”输出名为XXX.jpg的图片Œ

•using后的7:1意思是使用数据文件的第7列作为x轴,第1列作为y轴。注意x轴的值在前。

•“with points”即为画点。

b。

关于key的放置位置,可以根据不同需求进行调整。

官方手册上解释如下:

set key {on|off} {default}
{{inside | outside} | {lmargin | rmargin | tmargin | bmargin}
| {at <position>}}
{left | right | center} {top | bottom | center}
{vertical | horizontal} {Left | Right}
{{no}opaque}
{{no}reverse} {{no}invert}
{samplen <sample_length>} {spacing <vertical_spacing>}
{width <width_increment>}
{height <height_increment>}
{{no}autotitle {columnheader}}
{title "<text>"} {{no}enhanced}
{font "<face>,<size>"} {textcolor <colorspec>}
{{no}box { {linestyle | ls <line_style>}
| {linetype | lt <line_type>}
{linewidth | lw <line_width>}}}
{maxcols {<max no. of columns> | auto}}
{maxrows {<max no. of rows> | auto}}
unset key
show key

记住一些常用的就可以了:vertical:竖直排列;horizontal:水平排列;right top:右上角;left top:左上角;outside:画外放置;inside:画内放置等。

c。
如何运行?可以将代码保存为“XXX.gnu”,在命令行中输入:gnuplot XXX.gnu

或者保存为“XXX.plt”这样直接双击此文本文档即可得到结果,当然你的代码必须是正确的。。否则。你的图片大小会是0k。。

推荐第二种方法,比较方便。

二、画线

a。单条线

照例,先放一张自己用gnuplot画的图

很简单,一看代码你就明白了。

set term post eps color enh solid
set term pdfcairo lw 2 font 'Times_New_Roman,8'
datafile='realDuration'
set output 'realDuration-w1t1.pdf'
set xlabel 'Time(ms)' //设置横轴名称
set ylabel 'Duration(ms)' //设置纵轴名称
set grid //在图中显示网格
plot datafile using 6:4 notitle with lines
set output

b。画多条线及平滑处理

平滑选项指定如何使数据之间的连线平滑。为了使数据制图美观和合理, 根据数据绘制的曲线有不同的平滑算法。 
smooth {unique | frequency | cumulative | cnormal | kdensity| csplines | acsplines | bezier | sbezier}

autoscale 选项打开,将使得平滑曲线总体在图片边界内。
autoscale 没有开启, 并且平滑选项为 acspine 和 cspline, 曲线采样将穿过输入数据的 x 区域。
Acsplines 自然样条平滑。数据局部关于 x 单调, 曲线是分段函数。由系数符合输入权重的, 三次多项式构造。
权重由第三输入列表示。
Plot 'data-file' using 1:2:(1.0) smooth acsplines
输入权重的数量级将定性的影响曲线的分段数目。如果某个权重较大, 那么它所在点对曲线影响越大。
曲线逼近连接各个点的 3 次自然样条曲线。如果权重较小, 曲线由数个小片段组成, 总体上是平滑的。
极限情况是单个片段由加权线性最小二乘法产生, 逼近所有数据。数据误差可用作平滑权重。

例子:(以下两张图片来自@Ivan)

命令:
plot "price.dat" using 1:2 with linespoints,"" using 1:2 title "bezier" smooth bezier,"" using 1:2 title "csplines" smooth csplines

plot [1975:1995][40:160] "price.dat" using 1:2 with points title "price.dat", "" u 1:2:(1) smooth acsplines title "1", "" using 1:2:(1/50.) smooth acsplines title "1/50", "" using 1:2:(50) smooth acsplines  title "50", "" using 1:2:(1/10000.) smooth acsplines title "1/10000"

画多条线的方法也很简单:如上所示的,plot "xxx","xxx2",“xxx3"即可

三、线和点的种类

emf格式下,gnuplot有十五种颜色lt 1 至 lt 15。lt 16也为红色,但线形变为虚线。

emf格式下的前30种点、线

gnuplot画图技巧总结相关推荐

  1. gnuplot画图点线设置

    转载于点击打开链接 gnuplot下画图以及设置点.线基础 在NS2的gnuplot绘图程序中对线型(linetype).点型(pointtype).线条宽度(linewidth).点大小(point ...

  2. 2021-01-20 Matlab画图技巧与实例:堆叠图stackedplot

    Matlab画图技巧与实例:堆叠图stackedplot 在MATLAB线图中,一共有3种类型,分别是 线图,包括:plot,plot3,stairs,errorbar,area,stackedplo ...

  3. 在64位Windows的VS软件中使用C/C++调用gnuplot画图

    前言 gnuplot是一个可在多种操作系统中(Linux.Windows.Mac OS x等)使用的开源画图软件,支持2D.3D画图,也支持多种形式的输出如交互式的屏幕终端显示和fig/jpeg/pn ...

  4. pyplot画图技巧

    pyplot画图技巧 1. 一张图多组label的demo: from matplotlib import pyplot as plt import numpy as npax = plt.subpl ...

  5. matlab中单独存图_奇怪的Matlab画图技巧系列1–保存高清大图

    毕业季马上要到了,给大家总结一些我平常用到的奇特但是好用的Matlab画图技巧 保存高清大图 很多朋友保存Matlab图片时会选择jpg保存或者截图,然后放到论文发现特别模糊尤其文字部分是进行缩放调整 ...

  6. 画图技巧 : Matlab调用Origin作图

    转载画图技巧 matlab 调用 Origin Matlab作出的图普遍没有Origin作出的美观好看,而且导出为eps或emf格式后会有各种奇怪的Bug.目前普遍采用的一种方法是,将Matlab数据 ...

  7. 双代号网络图的画图技巧

     双代号网络图的画图技巧 1.先从"工作明细表"中找出所有开始的工序(没有紧前工序的工序),画一节点,从该节点引出说有开始工序. 2.找出所有工序的紧后工序,以找到所有结束的工序. ...

  8. gnuplot画图命令_Gnuplot科学绘图(二十六)——image 绘图

    Gnuplot科学绘图系列内容Gnuplot科学绘图(二十一)--简单 3D 函数绘图Gnuplot科学绘图(二十二)--数据文件存储格式Gnuplot科学绘图(二十三)-- 3D 数据曲面绘图及边框 ...

  9. 针对数据 gnuplot画图 初试

    把数据画成图,是我一直想要达到的,今日研究gnuplot,小有成就,下面我只举一个数据制图的例子 比如我想画个每小时nginx日志500错的图 需求:开启一个http服务,比如80端口 web根目录为 ...

最新文章

  1. python基础知识整理 第六节:面向对象封装练习
  2. C++中的二阶构造模式
  3. 陶哲轩实分析命题 11.10.7
  4. 【STM32】SPI程序示例
  5. JavaSE图画一览
  6. REVERSE-PRACTICE-CTFSHOW-8
  7. 后端返回页面ajax的处理
  8. .NET中方法的注意事项 明细
  9. 创新数据基础设施打通“数据”瓶颈,成就智慧院区建设
  10. delphi 可以自定义边框的文本框TSkinNormalEdit思路(QQ2011风格)
  11. php 验证码数字英文的,PHP 创设扭曲英文验证码
  12. BuildPack:无需编写 Dockerfile,新一代的企业镜像打包工具
  13. 固态硬盘文件恢复方法有哪些?四种恢复方法助您解忧
  14. 在谷歌地图上显示您的位置
  15. 获取手机相册中照片的地址,保存在手机中的URL(Swift 代码)
  16. 3050显卡驱动安装+配置pytorch的cuda环境
  17. 思科服务器怎么看型号,通过型号快速识别思科路由器,交换机,服务器等设备
  18. Day28 49. 丑数
  19. 如何设置路由器并利用路由器+宽带猫实现单机或是多机共享自动拨号上网
  20. Three.js用鼠标控制场景移动的代码

热门文章

  1. 基于树的机器学习模型的演化
  2. 华为HCIP之静态路由
  3. ps人像妆面修调教程
  4. 人口危机 资本剥削导致生育率低迷
  5. inno setup 卸载程序
  6. 图论(2):树和割集
  7. php webshell 木马,消灭php webshell与一句话木马
  8. AS百度地图定位APP
  9. 标准方程法(normal equation)公式推导
  10. Java学习总结第一阶段