Linux 绘图工具

2016-11-03 Thursday

主要介绍一下 Linux 中的 Gnuplot Graphviz 套件,主要用于画图。

Ggnuplot 是一个命令行驱动的绘图工具,可将数学函数或数值资料以平面图或立体图的形式画在不同种类终端机或绘图输出装置上,是由 Colin Kelley 和 Thomas Williams 于 1986 年开发的绘图程序发展而来的,可以在多个平台下使用。

graphviz 是贝尔实验室开发的一个开源的工具包,它使用一个特定的 DSL(领域特定语言) dot 作为脚本语言,然后使用布局引擎来解析此脚本,并完成自动布局。该软件包提供丰富的导出格式,如常用的图片格式,SVG、PDF 格式等。

在此介绍一下常见的使用方法。

Graphviz

graphviz 的设计初衷是对有向图/无向图等进行自动布局,开发人员使用 dot 脚本定义图形元素,然后选择算法进行布局,最终导出结果。

该软件中包含了众多的布局器:

dot 默认布局方式,主要用于有向图

neato 基于spring-model(又称force-based)算法

twopi 径向布局

circo 圆环布局

fdp 用于无向图

默认 CentOS 是安装了 dot 以及 graphviz,可以直接使用。

DOT

dot 可以用来表示有向图 (->) 以及无向图 (–),每个节点使用不同的属性,例如颜色、形状、线形等。最简单的示例如下。

$ cat foobar.dot # 查看文件

digraph G {

hello -> world;

}

$ dot -Tpng foobar.dot -o foobar.png # 生成png

$ eog foobar.png # 预览一下

graphviz 使用三种对象 node、edge、graph 来描述一个图,一个节点的 shape 定义了顶点的形状,代表类型有这么几种:1) 多边形类型;2) 纯文本类型; 3) 基于记录类型。

Gunplot

现在有很多的科学作图软件,如 Windows 平台上的 Origin、Tecplot、SigmaPlot 等,*NIX 平台上的 LabPlot、gnuplot 等,其它的计算软件如 Matlab、Mathematica、Maple、Scilab、IDL、Maxima 等对科学作图也有很好的支持。

而 gnuplot 是典型的 UNIX 哲学的产物,小巧、灵活、擅长与其他工具协同;既支持命令行交互模式,也支持脚本。

如下两个就是通过 gnuplot 绘制的图片。

在 CentOS 中,可以直接通过 yum install gnuplot 安装即可。

gnuplot> plot sin(x) # 绘制sin(x)曲线

gnuplot> set xrange [-pi:pi] # 设置X的取值范围

gnuplot> replot cos(x) with points pointtype 2 # 用点图重绘

----- 效果同上

gnuplot> plot [-pi:pi] sin(x), cos(x) with points pointtype 2

常见示例

设置输出

包括了输出文件的格式,输出的步骤。

set terminal wxt # 输出到电脑屏幕

set terminal postscript eps color solid linewidth 2 font "Helvetica,20" # 输出为eps格式

set terminal pdfcairo linewidth 2 font "Times New Roman,8"

set terminal pngcairo linewidth 2 font "AR PL UKai CN, 14"

set output "hello.eps"

set title 'Hello World Gnuplot'

plot [-pi:pi] sin(x), cos(x) with points pointtype 2

set output # 标示输出结束

eps 为 LaTeX 的常用图片格式,支持高质量的矢量图形,并且可以方便转换为 pdf、svg 等其它常用格式。如上是将输出设置为有色、采用实线、设置为 2 倍线宽、且字体采用 “Helvetica” 20 号字体。

另外,对于字体常用的还有 Times-Roman、Arial、Courier (等宽字体)、Symbol (希腊字母)。

命名图和坐标轴

set key top left # 设置图标

set key box # 图标外添加一个框

set title 'Hello World Gnuplot'

set xlabel 'Angle, in degrees'

set ylabel 'sin(angle)'

set xrange [-pi:pi]  # 设置X轴的取之范围,并设置角度显示

set xtics ('0' 0, '90' pi/2, '-90' -pi/2, '45' pi/4,'-45' -pi/4,'135' 3*pi/4,'-135' -3*pi/4)

set grid # 显示网格

plot sin(x)

多条曲线

with 子句可以详细而精确地指定线的样式。

plot sin(x) with linespoints pointtype 5, cos(x) w boxes lt 4

with/w 指定绘制线的格式

linespoints 在每个数据点处标记一个点

boxes 适合绘制直方图数据

pointtype/pt 点类型为5

linetype/lt 绘制采用第4种线

参考

如果喜欢这里的文章,而且又不差钱的话,欢迎打赏个早餐 ^_^

支付宝打赏

微信打赏

linux怎么进入绘图模式,Linux 绘图工具相关推荐

  1. linux怎么配置命令模式,Linux几种命令模式

    原标题:Linux几种命令模式 必须掌握的几个Linux命令 我们为什么要学习Linux的命令? 初学者上手Linux系统会很懵.不管你是否安装了图形化界面,或者去网上找一些教程.或者一些Linux的 ...

  2. linux文件的权限模式,Linux文件权限和访问模式

    为了更加安全的存储文件,Linux为不同的文件赋予了不同的权限,每个文件都拥有下面三种权限: 所有者权限:文件所有者能够进行的操作 组权限:文件所属用户组能够进行的操作 外部权限(其他权限):其他用户 ...

  3. linux更改硬盘紧急模式,linux 急救模式 和 single模式

    1.linux 急救模式: 很多人都不知道Linux有一个救援模式. 现在我来讲解进入rescue (示例系统为RHEL 3) 1.用安装光盘或者硬盘安装的方式进入安装界面,在shell 中输入 Li ...

  4. linux的八进制文件模式,linux od-输出文件的八进制、十六进制等格式编码的字节...

    博主推荐:获取更多 linux文件内容查看命令 收藏:linux命令大全 od命令用于输出文件的八进制.十六进制或其它格式编码的字节,通常用于显示或查看文件中不能直接显示在终端的字符. 常见的文件为文 ...

  5. 进Linux系统单用户模式,Linux进入单用户模式的两种方法

    单用户模式的作用 在使用Linux系统中,维护人员经常会碰到一个问题,就是在拥有root账号权限和密码的用户中,总是会出现忘记root密码的情况. 遇到这种情况,一般情况下,维护人员就会通过最常用的方 ...

  6. linux中的运行模式,Linux系统运行模式介绍

    Linux运行模式 自由服务,即不需要用户独立去安装的软件服务,而是在系统安装好之后就可以直接使用的服务(内置服务). 运行模式也称为运行级别,属于linux的自有服务. 运行模式可以理解为一旦你开机 ...

  7. linux如何进conf模式,Linux 中 vi /etc/sysctl.conf 如何编辑

    1.vi编辑器可以通过i.o.a等命令直接进入编辑模式,然后就可以修改文件了,vi/vim的工作模式如下图所示: 说明: 1)插入模式:i在光标前插入(默认光标为方块),a则是在光标后插入,o为新起一 ...

  8. linux电脑的ap模式,linux下使用7601驱动(AP模式)

    参考GitHub地址: 1,下载7601的AP驱动,编译成linux下专用的Ap模式驱动. 上面 github下载驱动解压MT7601u-master. a,看下Ap配置文件: \etc\Wirele ...

  9. linux命令进入用户模式,linux怎么切换到root用户模式

    默认安装完成之后我们是用当前用户权限的进入linux系统的,但是很多操作我们是需要用到root账户权限才可以操作. 首先进入控制台的命令是crtl+Alt+T. 默认安装完成之后并不知道root用户的 ...

最新文章

  1. 2021年大数据Spark(三十五):SparkStreaming数据抽象 DStream
  2. ORB_SLAM2概述
  3. 2018java二级考试大纲_2018年全国计算机二级java考试简答题练习二
  4. PCL两种方式的点云读写
  5. redux的compose源码,中文注释
  6. 【c语言】打印*型金字塔
  7. 20165212第九周学习总结
  8. spark中stage的划分与宽依赖/窄依赖(转载+自己理解/整理)
  9. java rmi接口 超时设置_Spring RMI客户端读超时设置 | 学步园
  10. iphone固件降级_iPhone无法开机怎么办?三种快速维修方法
  11. Mac OSX操作系统安装和配置Zend Server 6教程(1)
  12. 2021-2025年中国车轮运动防护产品行业市场供需与战略研究报告
  13. 【初学】python执行系统命令四种方法比较
  14. 2017 ACM-ICPC北京网络赛: C. Matrix(DP)
  15. bzoj2616:SPOJ PERIODNI
  16. java文件上传中间件_maven工程 java 实现文件上传 SSM ajax异步请求上传
  17. python云计算1_python云计算服务器
  18. Exception:must implement OnFragmentInteractionListener
  19. git源码安装后报错:bash: /usr/bin/git: No such file or directory
  20. 【C语言】用C语言输出菱形

热门文章

  1. gif图片的体积怎么缩小?如何压缩动图大小?
  2. Kafka SASL SCRAM授权java开发demo
  3. js渲染10万数据列表,不阻塞UI
  4. mysql 嵌套查询性能_MySQL数据库之嵌套查询与连接查询的性能详解
  5. 两列布局(3种解决方案)
  6. python输出最长字符串_使用Python打印最长的字母子字符串,并打结...
  7. #error和#warning使用分析
  8. matlab 求留数,用matlab求留数
  9. 【数字信号处理】卷积和乘法系列3之测不准原理
  10. 【Axure交互教程】 锚点滚动效果