复变函数画图cosz图像_Gnuplot科学绘图(一)——从安装到简单函数绘图(文末有彩蛋)...

本文是一篇关于使用Gnuplot进行复变函数cosz图像绘制的教程,作者旨在弥补gnuplot中文资料的不足,通过一系列文章构成完整的gnuplot中文教程。内容包括软件安装及基本函数绘图,适合科技工作者参考。
摘要由CSDN通过智能技术生成
Materials Studio系列内容怎么利用Materials Studio建立晶体模型?就是这么简单!手把手教你用Materials Studio计算碳纳米管的能带结构基于Materials Studio的异质结构建模技巧如何分析第一原理计算结果:电荷密度图、能带结构、态密度的分析70张图,搞定能带理论基础!【长篇图文,包教包会】Materials Studio软件——CASTEP使用教程详解

【作者前言】

对于科技工作者来说,gnuplot 是一个非常好用的绘图软件。因为感慨于gnuplot 中文资料和文档的缺乏,我于数月之前在科学网博客开始撰写“谈谈gnuplot”系列博文,至今已写了四十五篇。

虽然还有不少细节问题没有涉及,但是我觉得这些博文已经可以构成一个比较完整的gnuplot 中文教程。对大多数用户来说,这一系列博文已经涵盖了日常应用的需要。为了方便大家阅读,我现在将这一系列博文集结编辑成为此教程,以CC BY-NC-SA 知识共享协议发布。

一、安装

gnuplot 是一个小巧实用的数据处理工具,主要用来绘制2D/3D的数据或者函数图像,但是也包含数学计算、拟合等功能。虽然它的名字里有个“gnu”,但是它和大名鼎鼎的GNU 没什么关系,使用的授权协议也不是GNU GPL,所以这里的“gnu” 是小写,全名应该读作“new plot”。 所有的主流Linux 发行版都包含gnuplot,因此在Linux 上安装很简单,只要用各相应发行版的软件安装工具直接安装就可以了。 在苹果电脑上的安装也不复杂。MacPorts 项目把很多Linux上的应用程序移植到了苹果系统上,其中就包括gnuplot。只需要在苹果电脑上安装MacPorts,之后就能通过port 命令安装包括gnuplot 在内的各种Linux 应用程序了。 在Windows 下,可以直接到gnuplot 在sourceforge 的下载网页下载最新版本(文件名包含win32 的那个),解压之后到binary 目录里找到gnuplot.exe 直接执行就可以了。 二、启动 gnuplot是基于命令行的交互式绘图软件。打开一个终端,输入gnuplot,随着程序启动,会出现下面的信息:(如果是在Windows 电脑上,双击gnuplot.exe 后会自动打开一个命令行窗口): 149c53085dd3af68257d9cf158f57809.png
这里包含gnuplot 的版本、系统、版权等信息。 最关键的是最后一条:Terminal type set to ’wxt ’ 什么是terminal?在gnuplot中,terminal就是说你打算用什么方式输出图片。这里默认的terminal是wxt,也就是直接输出到电脑屏幕上。gnuplot 支持七十多种terminal,没必要都记住。我们以后会挑主要的几种讲一下。 提示信息之后,是gnuplot 的提示符:gnuplot> 在提示符之后输入各种命令,就可以开始画图了。 如果要退出程序,只需要输入quit 或者exit 命令。 三、数字表达 在我们开始画图之前,需要知道gnuplot 里面是如何表达数学公式的。 加、减、乘、除、乘方 分别用+,-,*,/,** 表示 整数和浮点数 和C 语言类似,gnuplot 对整数和浮点数(实数)区别对待,整数的运算结果还是整数。所 以在处理整数除法时要尤其小心,例如7/2 的结果是3 而不是3.5 复数 gnuplot 支持复数运算,复数用包含在花括号内的一对实数表示,例如{3,5}表示3 + 5i 数学函数 gnuplot 含有丰富的数学函数,格式和C 语言几乎相同。对于实数和复数,函数名是一样的。 下面的链接可以看到预定义的函数列表: http://www.gnuplot.info/docs_4.2/gnuplot.html#x1-5300013.1 自定义函数 自定义函数很容易,例如f(x)=x+1 定义一个一元函数,f(x,y)=x+y 定义一个二元函数。 π(圆周率) 在gnuplot 里用pi 表示。 举一个例子: 8618dfbad6db544ad47eba46be13da9d.png
这里用到了print 命令,就是把结果输出到屏幕上。 有了这些知识做准备,我们就可以正式开始画图了。 四、简单函数绘图 终于可以开始画图了!先从简单的函数图像入手吧。 gnuplot 里面的2D 作图命令是plot。先试着画一个正弦函数: gnuplot> plot sin (5 *x ) 84ec8a37c6a1f7f15f28bc569b229af6.png
这个正弦函数看着有点别扭,是吧?这是因为gnuplot 默认的函数取样为100 个点,对于快速振荡的函数,这个取样率有点低。函数取样数目由samples 这个参数控制。在gnuplot 里面,所有参数赋值都由set 命令完成。我们把函数取样数目改为500: gnuplot> set samples 500 gnuplot> replot f0ecb78fdd1bf27ec1e1a2373cafc8d7.png
怎么样,现在看起来好多了吧?这里用到了replot 命令。顾名思义,replot 就是把刚才的plot命令重新执行一遍。 图像右上角的图例(就是那个sin(5*x) 后面带一段横线)看起来有点碍眼。在gnuplot 里面,这个图例叫做key。对于同时包含多组数据的图像来说,图例是必要的。但是现在图像只包含一个函数,而且这个图例的位置也不那么对劲儿,我们先把它去掉: gnuplot> unset key gnuplot> replot 3f243a280bba0fa2656e33b116b7ec47.png
这里我们看到,可以用unset 命令取消一个参数设置。 现在碍眼的图例没有了,但是随之而来的问题是,我们不知道这个图像究竟表示什么意思。为了让它成为一个完整的科学作图,我们给它加上标题和坐标轴标签: gnuplot> set title ” s i n (5 *x ) ␣函数图像” gnuplot> set xlabel “X” gnuplot> set ylabel “Y” gnuplot> replot 005c1bb7a5fc0cffc6ab771ca7335e55.png
xlabel 和ylabel 分别表示横轴和纵轴的标签。在gnuplot 里,很多跟坐标有关的参数,都有相应的x 和y 版本。title 虽然可以给图像加上标题,但是在真正的科学论文里意义不大,因为所有论文插图都要求配有文字说明(Caption)。引号内的内容为字符串,大多数情况下双引号和单引号没有区别,除非遇到特殊字符(例如换行符nn),这时候单引号会把特殊字符当成一般字符处理,而双引号会按照特殊字符的意义将其展开。 这里我们注意到,字符串里也可以包含中文。究竟是否支持中文,和terminal 的种类有关系。有些terminal 对Unicode 支持不那么好,这时候显示中文就不那么容易了。好在我们可以选择那些比较有利的terminal。 现在我们有了一个简单的函数图像了。虽然看起来还不尽人意,但是没关系,我们以后会把它逐渐完善。 本文内容整理自马欢老师科学网博客。 链接:http://blog.sciencenet.cn/home.php?mod=space&uid=327371 Gunplot官方学习网站:http://www.gnuplot.info/ 本文转载自科学网,转载目的在于知识分享,如有侵权,请及时告知我们,我们将在最短的时间内删除。Materials Studio系列内容中科大 Materials Studio 培训快速入门教程(包你学会!)精选众多论坛讨论贴,Materials-Studio 论坛问答全集怎样把Materials studio能带图做得漂亮,用Matlab绘制呀!Materials Studio手把手教程丨界面操作、应用与NaCl晶体构建实例怎么利用Materials Studio建立晶体模型?就是这么简单!手把手教你用Materials Studio计算碳纳米管的能带结构基于Materials Studio的异质结构建模技巧如何分析第一原理计算结果:电荷密度图、能带结构、态密度的分析70张图,搞定能带理论基础!【长篇图文,包教包会】Materials Studio软件——CASTEP使用教程详解
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值