首页 > 编程知识 正文

萧初学入门教程,matlab菜鸟教程

时间:2023-05-03 21:25:18 阅读:40254 作者:1239

几年前写的一篇短文,今天在找什么的时候出现了。 我觉得还是写了实用的东西。 请放在这里作为需要的人的参考。

现在,可以在网上搜索到的科学制图软件不少,其中也有优秀的。 Win平台有著名的Origin、Tecplot、SigmaPlot等,UNIX类有LabPlot、gnuplot等。 其他常用计算软件(如Matlab、Mathematica、Maple、Scilab、IDL和Maxima )也支持科学制图,只需稍微努力使用MS的Excel即可绘制出好的图但是,笔者最喜欢的工具是gnuplot。 gnuplot是典型UNIX哲学的产物,小巧灵活,善于与其他工具协作。 我使用gnuplot一年多了,积累了一些经验。 以下内容主要是我一年多来使用gnuplot做的笔记总结。 当然,在定稿过程中也多次翻了gnuplot的手册。

gnuplot是命令行驱动的科学绘图工具,可以在各种类型的终端或绘图输出设备上将数学函数或数值数据绘制为平面图或立体图。 它由ColinKelley和ThomasWilliams于1986年开发的绘图程序发展而来,可在多个平台上使用。 gnuplot同时支持命令行交互模式和脚本。

gnuplot的主要作者是ThomasWilliams、ColinKelley、RussellLang、DaveKotz、JohnCampbell、GershonElber、AlexanderWoo和许多其他人。

因为gnuplot与自由软件基金会和GNU项目没有直接关系,所以把gnuplot称为gnuplot是错误的。 gnuplot是完全独立的设计和开发,命名为gnuplot只是一种妥协,当时Thomas希望他们开发的程序叫“llamaplot”,Colin喜欢“nplot”这个名字。 后来,他们同意将他们的程序命名为“newplot”,但很快就意识到有一个用Pascal语言编写的程序。 而且,这个程序有时会被提及。 最后,托马斯想出了“gnuplot”这个双方都能接受的名字。

internet上gnuplot的主页地址为www.gnuplot.info,源代码和可执行文件也可在http://SourceForge.net/projects/gnuplot上下载。

gnuplot有详细的文档,如果用户使用GNU/Linux,则可以查看位于/usr/share/doc/gnuplot目录中的gnuplot.html文件。 需要PDF版本的文档可从http://SourceForge.net/projects/gnuplot下载。

这里引用的所有例子都是从gnuplotdemo开始整理的。 子目录demo示例也引用了本文的图例。

快速启动

本文以GNU/Linux的gnuplot 4.0版为例。 如果读者使用其他版本的操作系统,请调整各个操作的详细信息。

在命令行模式下输入gnuplot时,将显示以下信息: 省略了部分省略号。

guplotversion 4.0 patch level0lastmodifiedthuapr 151433604336022 cest 2004 system : Linux 32 bit……terminaltypesetto ' X11 ' g Nong

“gnuplot”是gnuplot命令行提示符,所有gnuplot命令都在此提示符下输入。

2D绘图请参阅例1 :

是plotsin(x )

得到了图2的结果——,用曲线画出了三角函数sin(x )。

图1打印签名(x ) )。

假设你只想看到一个正弦曲线周期。 这是通过限制图的默认x范围来完成的。 使用表示法[min:max]指定范围。 要仅指定最小值,请单击[min:]; 使用“[:max]”仅指定最大值。 在数学上将其称为所谓的“闭”区间表示法。

示例-从pi到pi的sin(x )和cos (x ) )

设置范围[-pi : pi ] replotcos (x ) with points pointtype 2

或:

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

刚才使用了replot命令。 运行以前的plot命令。 如果需要不断修改图形以创建图形并添加所需特征,则此命令非常有用。 另外,使用replot可以添加更多的图。 尝试输入replotcos(x )。 在语法上,该命令与plotsin(x )、cos ) )相同。 replot是指获取以前的绘图字符串,添加所需的逗号,然后将其添加到其馀部分进行输入。

p>

例 5 将数据文件中的数据画出:

plot sin(x), ‘1.dat’

其中1.dat 为一数据文件,每一行描述一点坐标位置。 内容如下,其中 # 后面的内容为注释: 

# $Id: 1.dat,v 1.1.1.1 1998/04/15 19:16:40 lhecking Exp $-20.000000 -3.041676-19.000000 -3.036427-18.000000 -3.030596-17.000000 -3.024081-16.000000 -3.016755-15.000000 -3.008456……

图 2 Plotting sin(x), data file – 1.dat

例 6命名图和坐标轴:

set title 'My first graph'set xlabel 'Angle, in degrees'set ylabel 'sin(angle)'plot sin(x)

现在,我们注意到 x 轴实际没有标记为度数,看起来不是很好。要修改此问题,可以通过调整 x 轴上的 tic 标记。

例 7 改变轴上 tic 并设置网格:

set title "My first graph"set xrange [-pi:pi]  # we want only one cycleset xtics ('0' 0, '90' pi/2, '-90' -pi/2, '45' pi/4,'-45' -pi/4,'135' 3*pi/4,'-135' -3*pi/4)set gridset xlabel 'Angle, in degrees'set ylabel 'sin(angle)'plot sin(x)

gnuplot 还允许您指定绘图的样式,以便获得进一步的控制。

例 8 多条曲线

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

with 子句使您可以详细而精确地指定线的样式。在本例中,我们说明两种有用的样式。第一种样式 linespoints 通常在对数据绘图时非常有用,它在涉及的每个示例或数据点处标记一个点,并使用线性插值法连接连续的点。这里我们另外指定点类型为 5,它选择终端允许的第五种点。第二种样式 boxes 更适合绘制直方图数据。注意我们如何在 cos(x) 曲线中将 with 缩写成 w。类似地,lt 是 linetype 的缩写,是另一个特定于终端的设置,它选择终端可以绘制的四种线。不必说,您可以使用 pt 代替冗长的 pointtype。如果想在多条线中使用相同的绘图样式(在一个 plot 命令中或在多个 plot 命令中),可以使用 set 命令设置绘图样式:set style function linespoints。要更改用于绘制与函数相对的数据集合的样式,使用 set style data linespoints。

当绘制两条或多条曲线时,我们需要关键字或图例来对它们进行区分。默认情况下,关键字在右上角;但是如果它妨碍了图,可以将关键字放到其他位置 。如果愿意,甚至可以放到图外。

例 9 定制图的关键字或图例

set key top leftset key boxplot [-pi:pi] sin(x) title 'sinusoid' with linespoints pointtype 5, cos(x) t 'cosine' w boxes lt 4

上面,我们在同一图中绘制了正弦和余弦曲线。gnuplot 使您还可以绘制多个图,这样它们可以并排显示在同一输出屏幕或文件中。在某些排版系统中,以一个文件的形式包含两个图形比分别包含两个图形要更容易。

例 10 Multiplot 示例:

set xrange [-pi:pi]# gnuplot recommends setting the size and origin before going to multiplot mode# This sets up bounding boxes and may be required on some terminalsset size 1,1set origin 0,0# Done interactively, this takes gnuplot into multiplot modeset multiplot# plot the first graph so that it takes a quarter of the screenset size 0.5,0.5set origin 0,0.5plot sin(x)# plot the second graph so that it takes a quarter of the screenset size 0.5,0.5set origin 0,0plot 1/sin(x)# plot the third graph so that it takes a quarter of the screenset size 0.5,0.5set origin 0.5,0.5plot cos(x)# plot the fourth graph so that it takes a quarter of the screenset size 0.5,0.5set origin 0.5,0plot 1/cos(x)# On some terminals, nothing gets plotted until this command is issuedunset multiplot# remove all customizationreset




版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。