Gnuplot是由Colin Kelly和Thomas Williams推出的一款功能强大的命令行的交互式绘图工具。Gnuplot的功能主要是把数据资料和数学函数转换为容易观察的平面或立体的图形。Gnuplot支持两种工作方式,交互式方式和批处理方式可以让使用者很容易地读入外部的数据结果,在屏幕上显示图形,并且可以选择和修改图形的画法,明显地表现出数据的特性。另外gnuplot通过在gnuplot提示符中发出命令,可以在交互模式下操作,用户通过输入命令,可以逐步设置或修改绘图环境,并以图形描述数据或函数,使我们可以借由图形做更进一步的分析。Gnuplot是使用命令行来绘图的,功能包括二维和三维绘图,数量庞大的输出格式,交互式输入或脚本驱动的选项,和一大套脚本实例。虽然名字里包含了GNU,但是它并不是GNU的一个部分。这么一款功能强大的软件,有需要的朋友可以下载看看。
安装教程
1、打开gp506-win32-mingw.exe软件
2、选择语言类型,英文English
3、接受安装协议,我同意,next
4、阅读安装信息更新内容,next
5、安装软件位置放置c磁盘,修改磁盘选项,点击浏览按钮,next
6、添加桌面附件选项,next
7、放置文件夹并命名gnuplot,修改点击浏览按钮,next
8、创建附加选项,添加桌面图标,next
9、开始铁通宽带拨号客户端程序安装,点击install按钮
10、加载软件,完成安装,退出程序,finish
功能特色
1、Gnuplot支持多种类型地块在任何2D和3D。它可以通过绘制线,点,箱,等高线,矢量场,表面和各种相关文字,它也支持各种专业绘图类型。
2、Gnuplot支持多种不同类型输出:交互式屏幕终端(鼠标和热键输入),直接输出到笔式绘图仪或现代打印机,并输出到多种文件格式(EPS,无花果,JPEG ,乳胶,METAFONT,PBM,PDF,PNG,后记,SVG,...)。
3、 gnuplot很容易扩展到包括新输出方式,最近增加包括基于aquaterm(OSX)交互终端和wxWidgets(多平台)。
使用教程
1、下载软件压缩包文件,点击“gp506-win32-mingw.exe”根据提示完成安装即可,点击桌面“gnuplot 5.0 patchlevel 6”启动软件,出现gnuplot图形界面,如下图所示:
2、在提示符下面输入:
gnuplot> plot [-3.14:3.14] sin(x)
然后就可以看到结果,上面有横轴有纵轴,还有图例,如下图所示:
3、如果你不需要上面的图例,你可以在运行:
gnuplot> unset key
4、如果要还原
gnuplot> set key default
然后再运行上面的绘图命令就可以实现没有图例或者恢复图例的效果了
5、一般情况下使用gnuplot都是科学绘图,因此很多都是放在文章里面。一般优秀的科技文献都是用latex来编写的,所以gnuplot提供了直接输出tex文件的功能,只需要把output设置为latex就可以了。
下面来看一个例子,就把上面的正弦曲线插入到你的文章中。在命令行下输入:
gnuplot> set terminal latex
set output "sin.tex"
plot [-3.14:3.14] sin(x)
那么程序自动生成了一个tex文件,其包含一系列代码,都是绘图用的,可以用写字板打开,里面都是一些指令,你完全可以忽略掉。你可以把这个文件直接插入你的文章中,例如:
\begin{figure}
\begin{center}
\input{sin.tex}
\end{center}
\end{figure}
以后凡是要生成插入latex的图片,就可以用上面的办法实现。
6、当然前面的图已经很不错了,就是稍显单调,这里给它加点装饰,来个x轴和y轴的提示、图片是说明。这样才更像一幅论文里面的图片。在命令行下输入以下代码
gnuplot> set terminal latex
set output "sinagain.tex"
set size 5/5.,4/3.
set format xy "$%g$"
set title "This is a plot of $y=\\sin(x)$"
set xlabel "This is the $x$ axis"
set ylabel "This is\\the\\$y$ axis"
plot [0:6.28] [0:1] sin(x)
依旧生成一个tex文件,安装前面讲的方法把它包含进来。然后编译成PDF的效果
这里用到了几个命令:
set size 设置图片的大小
set format xy 设置x、y轴文字的格式
set title 设置图片标题
set xlabel 设置x轴的文字
一般情况下,科技论文的图片很多都含有好几个图线,那么这里就介绍下如何在一张图里显示多张图片。
先看代码:
gnuplot> set terminal latex
set output "combine.tex"
set format xy "$%g$"
set title "Combination"
set xlabel "$x$ axis"
set ylabel "$y$ axis"
plot [-3.14:3.14] 0.2*x with points, sin(x) with lines
这里没有很特别的地方,只是plot多了一个项目,当要绘制多个图线的时候需要用逗号来分隔,注意这里不是中文的逗号,而是西文的逗号。另外with后面的参数是说用什么线性来绘制。出来的效果看下面的图:
接下来再对图片进行加工。一般图片x轴每个计数单位都是希望能够控制的,而不是系统自己来决定的,那么可以通过以下的代码来实现。
看代码:
gnuplot> set terminal latex
set output "tic.tex"
set format y "$%g$"
set format x "$%.2f$"
set title "This is $\sin(x)$"
set xlabel "This is the $x$ axis"
set ylabel "$\sin(x)$"
set xtics -pi, pi/4
plot [-pi:pi] sin(x)
把生成的tex文件插入你的latex文件中,就出现了以下的效果:
还是没有大变化,就加了一个set xtics这个是设置x的间距,也就是从-pi开始、每隔pi/4出现一次,pi是gnuplot内建的一个变量,所以只要输入pi,系统知道其含义。
更新日志
v 5.2.2更新日志:(2019-3-15)
1.修改处理包含NaN的输入数据,数据列数不一致或其他意外内容。有关示例和数字,请参见注释。
2.时间坐标内部存储为相对于1970年1月1日至1月1日的标准unix纪元的秒数。 gnuplot的早期版本在内部使用了不同的时期(2000年1月1日)。此更改可以解决在外部生成秒数时间内引入的不一致。特定gnuplot安装使用的时代约定可以使用命令print strftime(“%F”,0)来确定。时间现在存储到至少毫秒的精度。
3.函数timecolumn(N,“timeformat”)现在有2个参数。因为新的第二个参数与任何特定的数据轴不相关,所以允许使用timecolumn函数来读取时间数据,而不是指定x或y坐标。此功能将替换命令序列集xdata time;设置timefmt“timeformat”。它允许在单个图中组合从多个文件读取不同格式的时间数据。
4.set [axis]范围命令的反向关键字仅影响自动缩放。它不会反转或以其他方式更改命令的含义,例如set xrange [0:1]。如果要在这种情况下反转x轴的方向,请改为设置xrange [1:0]。
5.通过提供一组变量ARGC,ARG0,...,ARG9来实现调用命令。 ARG0保存正在执行的脚本文件的名称。 ARG1到ARG9是字符串变量,因此可以直接引用或扩展为宏。 @ ARG1。引用调用参数的旧约会标记为$ 0 ... $ 9已被弃用。
6.核心密度平滑选项的可选带宽取自关键字而不是数据列。看到光滑的kdensity。
7.unset xrange(和其他轴范围)恢复原始默认范围。
8.取消设置终端恢复gnuplot会话的原始终端。
0条评论