linux中使用gnuplot
- 格式:doc
- 大小:43.50 KB
- 文档页数:12
你会用吗?Linux五大数据可视化工具(2)Linux上用来实现数据的图形可视化的应用程序有很多,从简单的2-D 绘图到3-D 制图,再到科学图形编程和图形模拟。
幸运的是,这方面的工具有很多开放源码实现,包括gnuplot、GNU Octave、Scilab、MayaVi、Maxima 等。
每个工具都有自己的优缺点,并且都是针对不同的应用程序而设计的。
对这些开放源码图形可视化工具进行一下探索,有助于我们更好地决定哪个工具最适合我们的应用程序。
AD:GNU OctaveGNU Octave 是一种高级语言,主要设计用来进行数值计算,它是MathWorks 出品的Matlab 商业软件的一个强有力的竞争产品。
除了gnuplot 所提供的简单命令集之外,Octave 还为进行数学编程提供了一种丰富的语言。
我们甚至可以使用 C 或C++ 语言编写自己的应用程序,然后与Octave 进行交互。
Octave 最初是在1992 年作为化学反应堆设计教科书的一个辅助软件而编写的。
其作者希望能够帮助学生解决反应堆的设计问题,而不用调试Fortran 程序。
结果获得了一种非常有用的语言,并为解决数值问题提供了交互式环境。
Octave 可以以一种脚本化模式非交互地进行操作,或者通过 C 和C++ 语言绑定进行操作。
Octave 本身就有一种非常丰富的语言,该语言看起来与 C 语言非常类似,并有一个很大的数学库,包括信号和图像处理、音频处理以及控制理论所使用的一些特殊函数。
由于Octave 使用了gnuplot 作为其后端实现,因此使用gnuplot 可以绘制的所有东西都可以使用Octave 进行绘制。
Octave 的确有一种更丰富的语言来进行计算,它有很多明显的优点,但是仍然有gnuplot 的一些限制。
在下面这个Octave-Forge Web 站点上提供的例子中(SimpleExamples),绘制了一个Lorentz Strange Attractor。
以下由广西善图科技有限公司发布,该公司是一家集遥感数据获取、深度加工、遥感信息提取及解译、行业应用、软件服务、解决方案为一体的高新技术企业。
Linux环境下stamps操作说明一软件安装:环境为ubuntu 16.041)安装插件:sudo apt-get install gawk gcc g++ make tcsh2)安装插件 sudo apt-get install csh3)doris 安装:安装包为doris_v406beta2,解压以后复制到/home/sentinel/Documents/文件夹:i.安装fftwcd /home/sentinel/Documents/ubuntuprog/doris_v406beta2/fftw-3.3.6-pl2bash ./configure --prefix=`pwd` --enable-float --host=x86_64makemake install安装过程中注意:libfftw3f.a 的路径选择为/home/sentinel/Documents/ubuntuprog/doris_v406beta2/fftw-3.3.6-pl2/libfftw3.h 路径选择为:/home/sentinel/Documents/ubuntuprog/doris_v406beta2/fftw-3.3.6-pl2/include/fftw3.hii.安装doriscd /home/sentinel/Documents/ubuntuprog/doris_v406beta2/src./configure===> What is your C++ compiler? [g++] y===> Do you have the FFTW library (y/n)? [n]y===> What is the path to the FFTW library (libfftw3f.a)? []/home/sentinel/Documents/ubuntuprog/doris_v406beta2/fftw-3.3.6-pl2/lib ===> What is the path to the FFTW include file (fftw3.h)? [/usr/include] /home/sentinel/Documents/ubuntuprog/doris_v406beta2/fftw-3.3.6-pl2/include===> What is the path to the FFTW library?/home/sentinel/Documents/ubuntuprog/doris_v406beta2/fftw-3.3.6-pl2/include===> Do you have the VECLIB library (y/n)? [n]n===> Do you have the LAPACK library (y/n)? [y]Using default: n===> What is the path to the LAPACK library liblapack.a? [/lib]/libChecking whether you have FORTRAN LAPACK library:FORTRAN===> Are you working on a Little Endian (X86 PC, Intel) machine (y/n)?[y]y===> Do you want to compile a more verbose DEBUG version (y/n)? [n] n ===>Installation of Doris in directory: /usr/local/bin (y/n)? [y] ymakesudo make install此处可能出现问题:strcat(name_,'\0');根据错误找到文件,将strcat(name_,'\0');修改为name_[9]=’\0’;bk_messages.hh文件中将文件中ifndef和endif这两句删掉iii.安装 SARtools$cd /home/sentinel/Documents/ubuntuprog/doris_v406beta2/SARtools$make$sudo make install若遇到问题:argv[optind]== ‘0’ ,将其改为argv[optind]== 0iv.ENVISAT_TOOLS、getorb、GMT 的安装(可安可不安),安装包中有。
Gnuplot简介本文来自:/Kawano/gnuplot/intro/index-e.htmlGNUPLOT 是用于显示数学函数和数据图形的自由软件,有许多网站有相关文档,因此这里仅对如何根据试验数据或数值计算结果作图进行描述。
1.基本用法Gnuplot已经移植到各种不同的操作系统下,用法也略有不同,这里对UNIX 的X11环境下进行介绍。
因为大部分用法是通用的,因此本教程也可作为其它环境下使用的参考。
首先,执行Gnuplot,显示banner和credit后出现Gnuplot命令行提示符"gnuplot>"。
Gnuplot是命令行驱动的作图工具,在命令提示符下输入命令作图。
% gnuplotG N U P L O TV ersion 4.0 patchlevel 0last modified Thu Apr 15 14:44:22 CEST 2004System: Linux 2.4.23Copyright (C) 1986 - 1993, 1998, 2004Thomas Williams, Colin Kelley and many othersThis is gnuplot version 4.0. Please refer to the documentationfor command syntax changes. The old syntax will be acceptedthroughout the 4.0 series, but all save files use the new syntax.Type `help` to access the on-line reference manual.The gnuplot FAQ is available from/faq/Send comments and requests for help to<gnuplot-info@>Send bugs, suggestions and mods to<gnuplot-bugs@>Terminal type set to 'x11'gnuplot>在Gnuplot中有很多命令,很难全部解释,这里仅介绍用Gunplot作图的最简单用法,可以用help命令得到相关命令的帮助。
一,基础篇:在linux命令提示符下运行gnuplot命令启动,输入quit或q或exit退出。
1.plot命令gnuplot> plot sin(x) with line linetype 3 linewidth 2 或gnuplot> plot sin(x) w l lt 3 lw 2 %用线画,线的类型(包括颜色与虚线的类型)是3,线的宽度是2,对函数sin(x)作图gnuplot> plot sin(x) with point pointtype 3 pointsize 2 或gnuplot> plot sin(x) w p pt 3 ps 2 %用点画,点的类型(包括颜色与点的类型)是3,点的大小是2gnuplot> plot sin(x) title 'f(x)' w lp lt 3 lw 2 pt 3 ps 2 %同时用点和线画,这里title ‘f(x)’表示图例上标'f(x)',如果不用则用默认选项gnuplot> plot sin(x) %此时所有选项均用默认值。
如果缺某一项则将用默认值gnuplot> plot ‘a.dat’ u 2:3 w l lt 3 lw 2 %利用数据文件a.dat中的第二和第三列作图顺便提一下,如这里最前面的两个例子所示,在gnuplot中,如果某两个词,按字母先后顺序,前面某几个字母相同,后面的不同,那么只要写到第一个不同的字母就可以了。
如with,由于没有其它以w开头的词,因此可以用w 代替,line也可以用l 代替。
2、同时画多条曲线gnuplot> plot sin(x) title ‘sin(x)’ w l lt 1 lw 2, cos(x) title ‘cos(x)’ w l lt 2 lw 2 %两条曲线是用逗号隔开的。
画多条曲线时,各曲线间均用逗号隔开就可以了。
利用vmstat+gnuplot+python脚本生成CPU和内存使用率图表最近接触了 gnuplot 这个不错的工具,虽然生成图表的功能可以通过excel 容易的实现,但是在linux命令行下可以跟其他工具配合,轻松实现”自动化”。
vmstat 可以不断的显示linux 系统的 CPU/内存以及 io 的使用情况: vmstat 2 1000 表示每俩秒显示一次系统各种资源消耗情况,一共执行1000 次。
于是做了个比较简单丑陋的python脚本,格式化vmstat 的输出数据并利用gnuplot 生成图表—脚本中实际上是调用测试web server 压力的工具autobench 对gnuplot 的一个再封装脚本bench2png,生成完以后用sz 命令下载到本地,然后删除服务器上的文件。
gnuplot 的用法后面再整理下。
### 遍历当前目录下的文件fileList = os.listdir(path)for file in fileList:# 文件名中没有 vmstat 则不处理if file.find('vmstat') < 0:continue;# 只处理后缀 .txt 或者 .log 的文件if file[-4:] != '.txt'and file[-4:] != '.log':continue# 如果对应的 tsv 文件不存在, 则生成tsvFile = file[0:-4] + '.tsv'if not os.path.exists(path + tsvFile):fileHandle = open(path + file);# 生成 tsv 文件fileContent = ''i = 0header = ''for line in fileHandle.readlines():# 保证每行开始都一样:至少有一个空格line = '' + line# 如果该行存在 procs 则不处理if line.find('procs') > -1:continue# 前 10 行出现 cache 字符表明是列说明,则保留if line.find('cache') > -1and i > 10:continue# 替换字符line = re.sub(r"\n +", "\n", line)# 替换各种换行回车为 \n ,有一个值得改进的机制就是最好能够通过python 脚本内部调用 vmstat 而不是去分析 vmstat 的输出结果,不过作为我第二个实用 python 脚本,感觉还是不错了 :) 下面是生成图效果:One Response to “利用 vmstat+gnuplot+python脚本生成CPU 和内存使用率图表”。
linux gimp使用指令
GIMP(GNU Image Manipulation Program)是一个开源的图像编辑软件,可以在Linux系统上使用。
以下是一些常用的GIMP 指令:
1. 打开图像文件:`gimp filename.jpg`
2. 创建新图像:`gimp -n -i -b width x height`
3. 导出图像为PNG格式:`File > Export As > PNG`
4. 保存图像为JPEG格式:`File > Export As > JPEG`
5. 裁剪图像:`Image > Crop to Selection`
6. 调整图像大小:`Image > Scale Image`
7. 添加文本:`Text Tool`(工具栏中的文字工具)
8. 撤销操作:`Edit > Undo`
9. 重做操作:`Edit > Redo`
10. 剪切图像:`Edit > Cut`
11. 复制图像:`Edit > Copy`
12. 粘贴图像:`Edit > Paste`
13. 填充颜色:`Paint Tools > Foreground Color`(前景色工具)
14. 选择颜色:`Color Picker`(颜色选择器)
15. 图层操作:在图层面板中,可以创建、删除、合并和调整图层的顺序等。
这些指令只是GIMP的基本功能,更多高级功能可以通过菜单栏和工具栏进行操作。
基础通过在 shell 命令提示符中输入 gnuplot 启动 gnuplot。
您首先看到提示符号 >。
该提示符是进入 gnuplot 的输入点;Linux 用户将习惯于这种方式。
例如,您可以使用方向键来查找以前输入的命令历史记录,然后编辑和重新执行这些命令;Home 和 End 键与平时使用没有区别。
可以对 gnuplot 进行重新编译以便使用 GNU readline 库在输入提示符上来回移动,但类似于默认函数。
Gnuplot 提供了广泛的在线帮助,如果您要做任何有用的事情,则肯定会用到这些在线帮助。
语法是统一的:通过输入 help 可以获得任何命令的帮助。
接着启动 gnuplot,尝试命令 help set yrange 和 help set(在每个命令之后,使用 q 退出帮助)。
注意 yrange 是 help set 下的可用子选项之一。
一般来说,gnuplot 帮助为命令的所有可能定制提供进一步的帮助。
浏览帮助中的示例部分通常就足可以了解如何使用命令。
Gnuplot 还有大量展示其能力的演示,通常位于安装的演示子目录中。
为了获得这些能力,在 gnuplot 提示符下进入此目录中(例如,cd'/opt/gnuplot/demo' —注意 gnuplot 要求所有文件名和目录名都用单引号或双引号括起来),然后输入 load 'all.dem'。
该目录中的各个 .dem 文件演示了各个函数,all.dem 将它们一次全部加载。
但您可能想将此操作延迟到本文结束时进行,这样我们可以开始使用 gnuplot ,无需再进行其他操作...对于那些想要继续的人,可以在提示符中分别输入代码清单中的每行代码。
或者,将整个清单保存到一个临时文件中,然后通过在 gnuplot 提示中输入load 'filename'(不要忘记引号)来运行代码。
可以预见的是,2D 绘图的命令是 plot。
科学绘图软件Gnuplot使用指南红领巾June13,2007摘要:Gnuplot是用来绘制2D与3D图形的命令行程序,它的功能不如那些商业数学软件强大,但相对于Mathematica或Matlab这样复杂的软件,它显得简易、灵活。
如果你仅仅是想绘制一些图形,又不愿意去学习与绘图无关的东西,Gnuplot是较为理想的选择。
本文介绍Gnuplot各重要的功能与基本用法,所用的操作系统环境为Linux。
1启动与退出在终端键入gnuplot命令,即可进入gnuplot命令交互环境:$gnuplot在gnuplot命令交互环境中键入exit命令,即可退出gnuplot环境:gnuplot>exit2函数与图形2D图形中,函数的自变量是x,在3D图形中,函数的自变量是x与y。
乘法运算符为*,除法运算符为/,幂运算符为**。
,在gnuplot中写为:例如,多项式3x4+4x−233*x**4+4*x-2/3要绘制上面示例中的多项式图形,在gnuplot命令交互环境中,键入:gnuplot>plot3*x**4+4*x-2/31-50005000100001500020000250003000035000-10-5 0 5 103*x**4 +4*x -2/3Figure 1:gnuplot 简单二维图形绘制示例生成的图形如图1所示。
图2为函数f (x )=x 2+y 2的图形。
观察图1与图2,可发现自变量x 与y 的范围为[-10,10],这是gnuplot 自变量默认的取值范围。
gnuplot 内部预定义了一些函数:•标准三角函数:sin (x ),cos (x ),tan (x ),π采用pi 表示;•反三角函数:asin (x ),acos (x ),atanh (x );•双曲函数:sinh (x ),cosh (x ),tanh (x );•指数与对数函数:exp 函数可以求自然底数e 的的幂,如4e 2x ,在gnuplot 中可采用4*exp(2*x)计算;log(x )函数计算以e 为底,x 的对数;对上面所列函数,欲知其详细信息,可在gnuplot 命令交互环境中输入“help 函数名”命令查询,如查询正弦双曲函数sinh 信息:gnuplot>help sinh2-10-5510-10-551020 40 60 80 100 120 140 160 180 200x**2 + y**2Figure 2:gnuplot 简单三维图形绘制示例3二维函数图形绘制Gnuplot 用于二维图形绘制的命令是plot ,该命令用法如下:plot <function>譬如绘制函数y =x 3的图形,可采用如下命令,绘制结果如图3所示:plot x**3采用如下命令可绘制双曲余弦函数图形,绘制结果如图4所示:plot cosh(x)注意,在图4中x 轴与y 轴刻度的比例并非1:1,但它可以告诉我们这样一个事实:随着x 的变化,y 值可能会变的非常大。
基础通过在 shell 命令提示符中输入 gnuplot 启动 gnuplot。
您首先看到提示符号 >。
该提示符是进入 gnuplot 的输入点;Linux 用户将习惯于这种方式。
例如,您可以使用方向键来查找以前输入的命令历史记录,然后编辑和重新执行这些命令;Home 和 End 键与平时使用没有区别。
可以对 gnuplot 进行重新编译以便使用 GNU readline 库在输入提示符上来回移动,但类似于默认函数。
Gnuplot 提供了广泛的在线帮助,如果您要做任何有用的事情,则肯定会用到这些在线帮助。
语法是统一的:通过输入 help 可以获得任何命令的帮助。
接着启动 gnuplot,尝试命令 help set yrange 和 help set(在每个命令之后,使用 q 退出帮助)。
注意 yrange 是 help set 下的可用子选项之一。
一般来说,gnuplot 帮助为命令的所有可能定制提供进一步的帮助。
浏览帮助中的示例部分通常就足可以了解如何使用命令。
Gnuplot 还有大量展示其能力的演示,通常位于安装的演示子目录中。
为了获得这些能力,在 gnuplot 提示符下进入此目录中(例如,cd'/opt/gnuplot/demo' —注意 gnuplot 要求所有文件名和目录名都用单引号或双引号括起来),然后输入 load 'all.dem'。
该目录中的各个 .dem 文件演示了各个函数,all.dem 将它们一次全部加载。
但您可能想将此操作延迟到本文结束时进行,这样我们可以开始使用 gnuplot ,无需再进行其他操作...对于那些想要继续的人,可以在提示符中分别输入代码清单中的每行代码。
或者,将整个清单保存到一个临时文件中,然后通过在 gnuplot 提示中输入load 'filename'(不要忘记引号)来运行代码。
可以预见的是,2D 绘图的命令是 plot。
在提示符中输入 plot sin(x):您应该在弹出窗口中看到熟悉的正弦曲线。
图 1. sin(x)我们刚刚创建了可能是最简单的图。
让我们看看如何以不同方法定制该图。
假设我们只想看到一个正弦曲线周期。
我们通过限制图的默认" x 范围来完成此操作。
使用表示法 [min:max] 来指定范围。
要仅指定最小值,使用 [min:];要仅指定最大值,使用 [:max]。
数学上称此为所谓的“闭”区间表示法。
这里我们使用 [-pi:pi] 得到一个正弦曲线周期:清单 1. 从 -pi 到 +pi 的 sin(x)set xrange [-pi:pi]replotreset图 2. 重绘正弦曲线图我们刚才使用了" replot 命令,它执行先前的 plot 命令。
当您绘制曲线图且需要不断对该图进行修改以添加想要的特征时,此命令会非常有用。
另外,replot 使您可以添加更多的图。
尝试输入 replot cos(x)。
依照语法,该命令等同于 plot sin(x), cos(x)。
Replot 就是获取先前的绘图字符串,添加必要的逗号,然后附加输入给它的其余部分。
使用的最后一个命令 reset 对于绘制正弦曲线不是必要的。
它移除先前所有 set 命令的效果并恢复默认值。
因此,在本例中,它将使用默认 x 范围。
现在让我们尝试一些更奇特的东西:plot sin(x)/x。
您应该看到如下所示图形:图 3. sin(x)/x从刚才这三个简单的例子,您可以看到" gnuplot 能够理解 pi 并具有丰富的自带数学函数词汇表。
它甚至知道非常有用的管理正态分布的统计函数,以及深奥的特殊函数,如朗伯、贝塞尔、beta 和 gamma 函数(还有更多!),这些函数通常仅在 mathematica 等功能齐全的数学工具中才会有。
根据经验,语法与 C 中的语法相似,C 中的语法又与平常数学中使用的语法相似。
(一个重要的不同是指数的表示法:为了方便,x 的 y 次幂写为 x**y)。
接着,将图命名为(“My First Graph”),并命名轴(x 轴是“an gle, in degrees”,y 轴是“sin(angle)”)。
清单 2. 命名图和轴set title "My first graph"set xlabel "Angle, \n in degrees"set ylabel "sin(angle)"plot sin(x)注意 xlabel 中的 \n 会产生新的一行。
一般来说,gnuplot 在双引号内的字符串中进行类似于 C 的反斜杠处理。
Windows 用户注意:如果您想文件名使用双引号括起来的字符串表示,则必须使用两个反斜杠:如"c:\\developerworks"(或者可以使用一个正斜杠:"c:/developerworks")。
现在,我们注意到 x 轴实际没有标记为度数,看起来不是很好。
要修改此问题,通过调整 x 轴上的 tic 标记,使指定的(主)标记仅以 90 度增加和辅标记以 45 度增加。
主 tics 的“级别”为 0,这是默认值;辅 tics 的级别为1。
每个点分别由一个 3 元组指定:"label"(放在引号中)、和。
清单 3. 改变轴上 tic 并设置网格set xrange [-pi:pi] # we want only one cycle set xtics ("0" 0, "90" pi/2, "-90" -pi/2, "" pi/4 1, "" -pi/4 1, "" 3*pi/4 1, "" -3*pi/4 1)set gridset xlabel "Angle,\n in degrees"set ylabel "sin(angle)"plot sin(x)图 4. 带有 tics、标题、网格和标签的轴的 sin(x) 注意对" +45 度和 -45 度辅标记使用了空标签 ("")。
还要注意我们不必以任何顺序列出点。
像 gnuplot 中的其他所有项一样,xtics 命令功能非常多,具有方便的选项,用于以固定增量创建 tic 标记(在对数标度中为正常倍数),以及用于时间相关数据的特殊格式。
查看 help set xtics 中的例子可以获得更多信息。
作为边注,注意我们使用反斜杠将 xtics 命令扩展成多个输入行。
这样可以使比较长或比较复杂的命令更易读懂。
我们还用 set grid 来设置网格,该命令使您可以从数量上查看图。
到现在为止,我们大量地使用了 set 命令。
Gnuplot 有一种撤销设置的统一方法:在gnuplot 4.0 中,命令是 unset。
例如,如果您不想要网格,使用 unset grid。
4.0 以前的版本,命令是 set nogrid。
顺便说一下,我们提供的所有例子都可以在交互模式或批处理模式下运行。
要以交互模式运行,在提示符中输入每个命令。
要以批处理模式运行,将命令输入或添加到文本文件中,然后在 gnuplot 提示符中使用 load 'filename' 读入文件,或者在 shell 提示符下将其作为参数提供给 gnuplot:$ gnuplot filename。
使用第二种方法,gnuplot 会在执行输入文件中的所有命令后退出,所以当直接绘图到文件中(请参见下一节)时,采用批处理模式执行特别有效。
如果在屏幕上绘图时使用第二种方法,输出窗口一出现(当 gnuplot 退出时)就会消失,所以您需要使用显式的“pause -1”命令(请参阅 help pause)来保持窗口。
批处理模式操作中使用的 Gnuplot 命令文件往往停留一会,从而帮助使用注释来提高可读性。
# 后面的直到行结束的内容是注释。
所以在示例清单 3 中,gnuplot 不处理 we want only one cycle。
终端设备——题外话在启动时,您可能注意到终端类型设置为 X11。
Gnuplot 采用标准设计,可以在多个终端设备上绘图。
这包括直接打印到多种打印机中,包括 Epson、HP 和 Imagen 打印机。
它甚至可以在伪设备中绘图,如 postscript 和 png。
这主要涉及生成输出文件,而不是可查看文件或打印输出。
这是将您的图表包含在其他报表中的一种技巧。
虽然我还没有发现在 Windows 中与在 Linux 中有什么不同,本文档建议您在设置输出文件名之前先设置终端类型:清单 4. 设置输出和终端类型set terminal png # gnuplot recommends setting terminal before outputset output "output.png" # The output filename; to be set after setting# terminalreplot现在,文件 output.png 中有了您刚才绘制的图,且可以包含在一个更大的报表中。
许多普遍使用的排版和制图程序都有专门的终端,这些程序包括 Adobe Illustrator(set term aifm)、Corel Draw(set term corel)、AutoCad(set term dxf)和多种 LaTex 相关的终端(eepic、latex、pstricks、texdraw、tpic 等等)。
您还可以得到 PostScript、enhanced PostScript (eps) 或 Adobe PDF 格式的文件。
您的 gnuplot 版本可能没有编译所有的终端驱动程序——例如,Windows 用户不需要 Xll 终端,Linux 用户不需要 Windows 终端。
类似地,出于法律原因,gnuplot 4.0 移除了对 gif 终端的支持。
所有终端在能力上都不相同。
其中的一些(如 LaTeX)可能不支持文本的旋转,所以如果您像我们前面那样设置 ylabel,在不同的终端中可能显示不一样。
换句话说,您可以在 LaTeX 的特定终端中使用 LaTex 命令。
例如,set ylabel "$sin(\\theta)$"(注意我们使用两个反斜杠产生一个 LaTex 所需的反斜杠—— gnuplot 在将双引号中所括的字符串传送到终端驱动程序之前,先对其进行反斜杠处理)。