linux中gnuplot给定文本,gnuplot笔记(四)
>第四章
1. 设置命令
主要有set,unset,reset三个,显示设置的命令是show
如set style function points
unset style function points
show style function
reset
其中reset将所有设置恢复为默认状态(terminal和output除外)。
显示所有选项show all
显示详细版本信息(包括版权,联机文档,编译时的选项)
show version long
2. 数据文件中的换行应该和本地操作系统和关,比如linux下就应该使用linux的换行符(\n),windows下就应该使用windows下的换行符(\r\n)
3. 数据文件中的数字格式
和C语言没有什么两样,如浮点格式:1.7e-2
但是gnuplot也能识别Fortran格式的浮点型: 1.7d-2或1.7q-2, 对于这种格式,需要事先指定
set datafile fortran
4. 数据文件中的注释
注意,是数据文件中的注释,而不是脚本文件中的注释。
默认是#符号,但必须是该行的第一个字符,否则将不视为注释(这一点和脚本中的注释是不一样的)。注释行被gnuplot直接忽略。
标识注释的符号实际上由一个内部选项commentschar控制
show datafile comments # NOTE: comments not commentschar由上面的命令可知道,commentschar的值默认为"#",该值也是可以改变的
set datafile commentschar "#!"可以指定多个符号,上面的命令表示,#或!都可以作为注释符号。显然,这里如果只指定一个符号,则原来的"#"就会被覆盖掉。
另外,为什么"show datafile comments"中不能使用commentschar?我也很费解。
5. 数据文件中的域分隔符
域分隔符其实就是列分隔符,默认情况下是一个或多个空白字符(空格, 制表符, 换行符)。
show datafile separator上面的命令默认情况下会显示whitespace。同样,这个选项也是可以设置的
set datafile separator ","注意,这个地方就只能设置为单个字符了。
下面两条命令是等价的,都是恢复到默认状态
set datafile separator whitespace
set datafile separator
6. 数据文件中的缺失值
默认情况下,空白被当成是分割符,这里需要指定缺失值。
set datafile missing "NaN"我尝试了一下,这个指定暂时没发现有什么意义,只要数据文件中有个占位的字符串,好像都被处理为缺失值。
plot命令的有两种对待缺失值的方式
plot "datafile" using 1:2 w lp # continuous
plot "datafile" using 1:($2) w lp # discontinuous前者直接忽略缺失值,但依然有直线相连;后者虽然也忽略缺失值,但缺失值前后是不相连的。
7. 数据文件中的字符串
列分隔符(默认是空格)如果出现在数据文件中的字符串中(字符串数据,不包括注释),必须用双引号括起来。
gnuplot支持使用scanf函数读取数据文件,也支持读取二进制文件。具体如何不详。
8. 检验当前gnuplot版本是否支持字符串操作show version long在该命令的结果中寻找+DATASTRINGS和+STRINGVARS这两个编译标志。如果有则说明支持字符串处理
9. 字符串
下面是合法的字符串
a = 'this is a string'
b = "First line\nSecond line"
c = "Double quote\" escaped"
d = 'single quote'' escaped'
这里说明一下,命令中的字符串和数据文件中的字符串是两码事,不要弄混了。
注意在单引号中是不能识别转义符(\)的,在双引号表示的字符串中出现双引号时使用转义符,而在单引号表示的字符串中出现单引号时要用两个单引号转义。
10. 字符串操作
整数可以隐式转成字符串,数字格式的字符串也可以隐式转为数字。
绰号如果列x = '3.14'
y = x + 2 # y=5.14
a = 4
b = a."foo" # a should be integer注意,上面的点运算符(.)表示字符串的拼接。
b = "Hello "."world"字符串也有比较运算符: eq, ne
c = a eq b ? "same":"different" # is equal
d = a ne b ? "different":"same" # is not equalgnuplot中的字符串同样可视为一个字符数组,注意:第一个字符的下标是1
a = "Gnuplot"
b = a[2:3] # b = "nu"
c = a[2:] # c = "nuplot"
d = a[:4] # d = "Gnup"还可以自定义字符串函数
head(s) = s[1:3]
a = head("January") # a = "Jan"其它内置函数:strlen(s), substr("str",i,j), strstrt("str","key"), words("str"), word("str",n), sprintf("format", ...), gprintf("format",...), system("cmd")
其中system函数是执行操作系统的命令。
11. 从数据文件中读取字符串作为标签
这个用法具体是指给每个点指定一个字符串显示在图上,就像地名一样。
因此,需要用using指定第三列字符串数据,当然这三列也可以用其它方法生成,比如stringcolumn函数。
plot "datafile" using 1:2:3 with labels
plot "datafile" using 1:2:(stringcolumn(2)) with labelsstringcolumn(N)和column(N)函数一样,都是得到当前行第N列的数据,只不过前者返回一个字符串,后者返回一个数。
除了数据点的标签,刻度也可以有标签. 下面的命令中的xticlabels的作用类似于stringcolumn函数,但这里的xticlabels貌似不是一个函数,而更像一条指令,即指定第三列为刻度标签。
plot "datafile" using 1:2:xticlabels(3) with lines
12. 指定图例字符串
plot "datafile" using 1:2 title "titleString" with lines
13. 产生文本输出
使用print函数。
print sin(0.3*pi)默认情况下,print函数输出到STDERR,但这个输出流是可以改变的
set print # print to STDERR, default
set print "-" # print to STDOUT
set print "filename" [append] # print to file,append is optional
除了print可容易地产生本文之外,将将要绘制的每个点输出到文本文件中是另外一种方式。
set table "tablefile"如果plot使用的数据读自文件,那么读进来哪些点就输出哪些点,不会凭空生成。对于绘制函数或用smooth指令进行拟合时,输出哪些点是由set samples来控制的。
输出文件是有一定格式,其中有一些标识符: i表示在显示范围内,o表示在显示范围外,u表示未定义
最后,要想恢复原来的状态,不要忘了unset
unset table
14. 命令的历史
在命令行模式下,使用过的命令都会保存到一个历史命令缓存中,缓存的大小由historysize选项决定
set historysize 666
因此,按Up方向键会往前翻,按Down方向键会往后翻。状往命
history命令用来显示命令历史
history [quite] [max] ["filename" [append]]quite表示不显示序号,因为默认情况下是显示序号的。max表示最多打印最后的max个命令,filename则表示不输出到终端而是输出到文件,而append则是表示在输出到文件的情况下,采取附加的方式,而不是覆盖。
history还可以用来搜索命令
history ?"set term"该命令搜索历史中所有以"set term"开头的命令,并显示出来
history还可以通过匹配,然后执行最近的一条匹配的命令
history !"set term"该命令搜索历史中开头为"set term"的命令,然后执行最近的一条。
15. 图形显示时的热键
在使用plot或splot命令之后,在终端未改的情况下,会弹出一个显示图像的图形界面。该界面是有一些快捷键的。
空格键,就会从图形界面转为命令行界面,但这个功能在我的系统上没能实现,!==
l键,仅将y轴变成对数坐标
L键,将与鼠标最近的坐标轴变成对数坐标
r键,在鼠标的位置上生成一个大“十”字,用来更清晰地显示坐标。
g键,网格
u键,取消前一次放大动作
h键,显示帮助
放大图像的方法: 右键选择一个矩形区域,然后按左键
默认情况下,鼠标功能是打开的,如果没有打开,使用下面的命令打开。
set mouse
16. 交互式输入数据
即从命令行输入数据,这当然是不方便的,但是在脚本批处理模式下是很方便的。
plot '-'上面的命令表示按照提示手动输入数据,输完一行按回车转到下一行,以EOF符结束(linux下是Ctrl-D)。
linux中gnuplot给定文本,gnuplot笔记(四)相关推荐
- Linux中的简单文本处理
文本处理命令 tr命令(可以用来删除一段文本信息中的某些文字,或者将其进行转换) 格式: tr [option] - SET1 [SET2] 可选参数: -d: 删除和set1匹配的字符 -s:去除s ...
- Linux中阶—加密库OpenSSL(四)
在使用OpenSSL命令创建证书前,可查看配置文件/etc/pki/tls/openss.conf文件,查看该文件定义了的证书存放位置及名称. 一.server生成证书文件. 1.生成私钥:opens ...
- 关于 Linux 中安全方面的一些笔记
写在前面 笔记是学习整理的,大都老师讲课内容,适合温习,不适合新手.整理了一份,希望对小伙伴有帮助. 生活加油,天天开心!博文主要围绕以几个方面: Linux基本防护:账户安全.文件系统安全.关闭不需 ...
- Linux中的高级文本处理命令,cut命令,sed命令,awk命令
1.2.1 cut命令 cut命令可以从一个文本文件或者文本流中提取文本列. cut语法 [root@www ~]# cut -d'分隔字符' -f fields ## 用于有特定分隔字符 [r ...
- Linux中常见的环境变量笔记
1.变量:BASH Bash Shell的全路径 比如:echo $BASH 2.变量:BASH_VERSION Bash Shell的版本号 3.变量:EUID 记录当前用户的UID.root用户值 ...
- linux中proc文件系统 -- ldd3读书笔记
1./proc 文件系统概述 /proc 文件系统是由软件创建,被内核用来向外界报告信息的一个文件系统./proc 下面的每一个文件都和一个内核函数相关联,当文件的被读取时,与之对应的内核函数用于产生 ...
- linux cli运行脚本,AWS学习笔记(四)--CLI创建EC2时执行脚本
当启动EC2实例时,可以向其传递用户数据来执行自动配置任务,支持两种类型的数据:shell脚本和cloud-init指令. Linux Shell 作为用户数据输入的脚本以root用户执行,因此不要在 ...
- linux中Iscpi命令详解(四)
lscpi命令详解 lspci是一个用来查看系统中所有PCI总线以及连接到该总线上的设备的工具. 命令格式为 lspci -参数 (不加参数显示所有硬件设备) 我的电脑lspci显示结果为: 00:0 ...
- linux xen 管理,Linux 中的 XEN 虚拟化技术(四)管理 Xen 虚拟系统
1.使用 xm命令管理 Xen虚拟机 A.显示运行状态 在命令行下使用"xm list"命令显示 Xen 虚拟系统当前运行的状况 [root@xen ~]# xm list Nam ...
最新文章
- python 办公自动化-Python办公自动化|从Excel到Word
- c语言某一行不被优化,C语言优化小技巧
- conda安装特定版本的包
- Portal-Basic Java Web 应用开发框架:应用篇(十一) —— 整合 Spring
- EOJ Monthly 2019.2 E 中位数 (二分+中位数+dag上dp)
- Linux中shell运行方式,linux脚本中父shell与子shell 执行的几种方式
- SpringBoot之Filter过滤器的实现及排序问题
- 5.1(统计正数和负数的个数然后计算这些数的平均值)
- 人与自然灵长类动物-湿地猎手(上)
- Vue - Nuxt.js 安装引入 WangEditor V5 富文本编辑器最新版本,超详细使用教程(Nuxt.js 项目使用官方提供的示例,页面报错,刷新就会报错navigator is解决方案)
- Q学习(Q-learning)入门小例子及python实现
- 初探Freebase和Wikidata的转换
- 分享sina的短链生成java代码
- 红帽6.4版本安装详细步骤
- 圣地亚哥大学计算机科学专业,加州大学圣地亚哥分校计算机科学与工程系
- C语言中的函数与数组详解
- 小程序内识别二维码调查
- WOW!这是最大的三极管!
- WSL2连接调用USB设备
- 使用DBLINK查询时报ORA-00600: internal error code, arguments: [kzdlk_zt2 err]