gnuplot使用手册.pdf
《gnuplot使用手册.pdf》由会员分享,可在线阅读,更多相关《gnuplot使用手册.pdf(19页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、Gnuplot 软件学习小教程Phys.ccNovember 12, 2011目录1什么是 Gnuplot22如何安装 Gnuplot22.1Linux 系统. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22.2Windows 系统. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23如何使用 Gnuplot23.1建立数据文件 (file.data) . . . . . . . . . . . . . .
2、. . . . . . . . . . . . . . . .33.2建立程序文件 (file.gnu). . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33.3程序改进:添加标签 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43.4程序改进:修改标尺有效位数 . . . . . . . . . . . . . . . . . . . . . . . . . . .53.5程序改进:分段拟合 . . . . . . . . . . . . . .
3、 . . . . . . . . . . . . . . . . . .73.6程序改进:给出拟合公式. . . . . . . . . . . . . . . . . . . . . . . . . . . . .83.7程序改进:优化代码(非必须) . . . . . . . . . . . . . . . . . . . . . . . . . .93.8程序修改:改变图片大小. . . . . . . . . . . . . . . . . . . . . . . . . . . . .113.9程序修改:改变标签位置. . . . . . . . . . . . . . . . .
4、. . . . . . . . . . . .114Gnuplot 在物理学中的应用124.1近代物理实验 1 4 磁电阻效应 . . . . . . . . . . . . . . . . . . . . . . . . .124.2近代物理实验 B-5 冉绍尔 -汤森实验. . . . . . . . . . . . . . . . . . . . . . .165关于本文档1911什么是 GnuplotGnuplot 是一款科学作图软件,它可以把数据做成规范的图形,功能十分强大,而且免费使用,易学易用性比 origin 更好。官方网站是:Gnuplot Homepage (http:/w
5、ww.gnuplot.info/)。到目前为止,最新版为 4.4.3 版,你可以从这里下载。你需要的版本,如果你是 Linux 用户,请下载 gnuplot-4.4.3.tar.gz。如果你是 Windows 用户,请下载 gp443win32.zip。Gnuplot 使用手册为 gnuplot.pdf,你可以一并下载,虽然是英文原版,但却是最好的学习资料。2如何安装 GnuplotGnuplot 的安装过程十分简单,Linux 下只需要一个命令即可安装,无需下载软件。Windows 系统下只需要解压即可使用。2.1Linux 系统Fedora、CentOS、Redhat 系统安装方法:在终端
6、输入以下命令即可。sudo yum install gnuplotUbuntu、Debian 系统安装方法:sudo apt-get install gnuplot其它 Linux 系统请参考相关的说明文档。2.2Windows 系统无需安装,下载 gp443win32.zip 并解压即可使用。3如何使用 Gnuplot使用 Gnuplot 作图十分简单,比 Origin 和 Matlab 都简单得多。Gnuplot 的使用必须要有 2 个文件,数据文件和程序文件,都使用文件编辑器即可。Windows 用户可使用记事本编辑,Linux 用户可以使用 gedit、vim 等编辑器。作图中拟合功能
7、是最常用的,Origin 和Sigmaplot 软件的拟合功能学起来十分困难,Gnuplot 的拟合功能学起来很容易。下面以磁电阻的分段拟合为例说明 Gnuplot 的使用方法。23.1建立数据文件 (file.data)原始数据可以用 OpenOffice Calc 或者 Excel 处理,这里省略,只给出处理后的结果:#I/mAU2/mV I2/mA U1/mV I1/mA BR0800.32.521.002.510.002317.630800.72.487.202.470.017322.960799.92.3613.002.350.032338.990800.42.2217.802.21
8、0.046360.5120800.42.0621.802.050.061388.5150800.21.9025.001.900.076421.2180800.71.7627.801.760.091454.9210800.81.6530.501.650.106485.3240800.81.5933.401.590.121503.6270800.11.5436.401.540.136519.5300800.81.5039.401.500.151533.9330800.11.4742.301.470.165544.3360800.11.4345.101.430.181559.5390800.21.4
9、147.901.410.195567.5420800.41.3850.601.380.211580.0500800.71.3257.401.320.250606.6600800.81.2565.201.250.300640.6700800.51.1871.701.180.349678.4800800.81.1277.701.120.399715.0900800.81.0682.601.060.448755.5将上表中的数据考入一个文本文档,我给它取名叫 “MPE_8-1_MR.data”,这个名字随便取,也可不用扩展名。这里需要用到的作图数据分别是第 6 列(磁场强度 B:x 轴)和第 7列(
10、磁电阻 R:y 轴) 。3.2建立程序文件 (file.gnu)现在我写了一个小程序,它十分简短:set term post eps color enh soliddatafile=”MPE_81_MR.data”set output ”MPE_81_MR_1.eps”plotdatafile using 6:7现在我来解释一下这段小代码:3 set:所有 Gnuplot 设置均以 set 开头。 term:即 terminal ,终端,指示图片输入出的格式用,如果后面可以跟 post eps、png、jpg 等。 post eps:我指定输出 eps 格式图片。 color:可以输出彩色图片
11、和曲线。 enh:即 enhance,加强,可以输入各种符号,例如希腊字母等。 solid:可使用实体线。 datafile=“MPE_8-1_MR.data”:这个是我自定义的一个变量,我想你一看就知道谁是变量,谁是赋值。 set output “MPE_8-1_MR_1.eps”:这是指定输出的图片格式和名称,这里我输出eps 格式图片。 plot:作图指令,最后一行代码我想我不用解释,它一目了然。好了,我们把这段代码保存为文本文档,取名为 “MPE_8-1_MR_1.gnu”,同样,这个文件名也是随便取,你也可以用 plt 作扩展名,或者不用扩展名。然后在命令行下来运行一下作图指令:gn
12、uplot MPE_8-1_MR_1.gnu然后在同一文件夹下,会出现名为 “MPE_8-1_MR_1.eps” 的图,我把它放在这里,如图1所示。这个图有点简陋,但已经很好地画出了实验曲线,至少比那个什么一棵赛奥的画出来的丑陋图强多了。大家可以自己思考一下,如何作出一个 png 格式的图(其实看了上面的代码解释,我想你一定很快就能作出来。 )下面我们来逐渐完善这个图。现在首要的任务是把x 轴和 y 轴的标签打上,不然我们知道这是神马图? !3.3程序改进:添加标签让我们加上三行代码:set term post eps color enh soliddatafile=”MPE_81_MR.da
13、ta”set output ”MPE_81_MR_2.eps”set title ”MagnetoResistance”4 300 350 400 450 500 550 600 650 700 750 800 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45datafile using 6:7图 1: 磁电阻随磁场的变化关系set xlabel ”B/T”set ylabel ”R/SymbolW”plotdatafile using 6:7这三行代码实在是简单,几乎不需要解释,只说明一下,xlabel 表示 x 轴标签,ylabel 表示y 轴标签,而
14、title 则表示图片的标题。这里唯一需要注意的是 /Symbol W,这表示希腊字母 。我想这样你就得到一个启示,即 26 个希腊字母和 26 个英文字母是一一对应的,只需要一个/Symbol 即可,最后别忘了用 和 把它括起来。好了,来看看我们的成果如何了,如图2所示:3.4程序改进:修改标尺有效位数这个图比第一幅图好多了,可是还有一点不足之处,x 轴的刻度有效位不统一,好了,我再加上几行代码,都是一些常用的代码:set term post eps color enh soliddatafile=”MPE_81_MR.data”set output ”MPE_81_MR_3.eps”set
15、 title ”MagnetoResistance”set xlabel ”B/T”5 300 350 400 450 500 550 600 650 700 750 800 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45R/B/TMagneto Resistancedatafile using 6:7图 2: 磁电阻随磁场的变化关系set ylabel ”R/SymbolW”#set xrange 0:0.45set yrange 300:800set size 1,1set key right topset xtics format ”%.2f”set
16、 ytics format ”%.0f”plotdatafile using 6:7 notitle lw 2需要解释吗?读懂它是件很容易的事。好吧,我再解释一下: xrange 和 yrange 分别是 x 轴和 y 轴的刻度范围,# 可以注释掉一行代码,xrange 和yrange 不管也可以,Gnuplot 会自动设置一个合适的值。 set size 1,1:这是默认设置,设置图的大小为 1。 set key right top:这也是默认设置,设置说明文字的位置为右上角,同样地,你也可以自己设置其它方位,比如:left、center、bottom。 set xtics format “
17、%.2f”:设置 x 轴的刻度数值保留小数点后 2 位。63004005006007008000.000.050.100.150.200.250.300.350.400.45R/B/TMagneto Resistance图 3: 磁电阻随磁场的变化关系 set ytics format “%.0f”:设置 y 轴的刻度数值保留到整数。 notitle lw 2:去掉线的说明,这样 set key right top 就不起作用了。 lw 2 表示 linewidth 2,表示把线和点的粗细变为 2,默认为 1。下面看看这次的效果,唯一体现是 x 轴的刻度,统一为 2 位有效数字,如图3所示。3
18、.5程序改进:分段拟合这个图已经十分漂亮了,现在我们开始分段拟合,首先按照实验讲义及上面的图,可以看出在 0.00 B 0.11 段电阻与磁场是二次曲线关系,在 0.11 B 0.45 段,电阻与磁场成线性关系。因此,我们可以加上 6 行代码:set term post eps color enh soliddatafile=”MPE_81_MR.data”set output ”MPE_81_MR_4.eps”set title ”MagnetoResistance”set xlabel ”B/T”set ylabel ”R/SymbolW”#set xrange 0:12set yrang
19、e 300:80073004005006007008000.000.050.100.150.200.250.300.350.400.45R/B/TMagneto Resistance图 4: 磁电阻随磁场的变化关系set size 1,1set key right topset xtics format ”%.2f”set ytics format ”%.0f”y1(x) = a*x*2 + b*x + cy2(x) = k*x + dfit y1(x)datafile using ($60.11 ? $6 : 1/0):7 via k,dplotdatafile using 6:7 noti
20、tle lw 2, y1(x) notitle lw 2, y2(x) notitle lw 2到这里,我相信你看代码的能力已经很强了,这 6 行代码不解释,只给出图,见图4。3.6程序改进:给出拟合公式图4已经相当完善了,不过,如果能给出两条曲线的拟合公式将再加完美:8set term post eps color enh soliddatafile=”MPE_81_MR.data”set output ”MPE_81_MR_5.eps”set title ”MagnetoResistance”set xlabel ”B/T”set ylabel ”R/SymbolW”#set xrange
21、 0:12set yrange 300:800set size 1,1set key right topset xtics format ”%.2f”set ytics format ”%.0f”y1(x) = a*x*2 + b*x + cy2(x) = k*x + dfit y1(x)datafile using ($60.11 ? $6 : 1/0):7 via k,dset label 1 sprintf(”R_1=%.0fB2+%.0fB+%.0f”, a,b,c) at graph 0.6,0.4 leftset label 2 sprintf(”R_2=%.0fB+%.0f”,
22、k,d) at graph 0.6,0.3 leftplotdatafile using 6:7 notitle lw 2, y1(x) notitle lw 2, y2(x) notitle lw 2这两行代码虽然长,但很简单,“at graph 0.6,0.4 left” 是说先在这个图的 (0.6,0.4) 点处选个基准点,整个图的大小为 (1,1),这个很好理解,left 是说标签放在这一点的左侧。有图有真相,看图5。3.7程序改进:优化代码(非必须)如果两个标签的位置不对,就需要改 4 个数来移动它,这是比较费事的,试想一下,如果有 10 个 20 个标签那得改多少地方?这里教大家一
23、个小技巧,不多说,请看程序代码:set term post eps color enh soliddatafile=”MPE_81_MR.data”set output ”MPE_81_MR_6.eps”set title ”MagnetoResistance”93004005006007008000.000.050.100.150.200.250.300.350.400.45R/B/TMagneto ResistanceR1 = 12683 B2 + 410 B + 315R2 = 745 B + 420图 5: 磁电阻随磁场的变化关系set xlabel ”B/T”set ylabel ”
24、R/SymbolW”#set xrange 0:12set yrange 300:800set size 1,1set key right topset xtics format ”%.2f”set ytics format ”%.0f”y1(x) = a*x*2 + b*x + cy2(x) = k*x + dfit y1(x)datafile using ($60.11 ? $6 : 1/0):7 via k,dp1 = 0.6p2 = 0.4q = 0103004005006007008000.000.050.100.150.200.250.300.350.400.45R/B/TMagn
25、eto ResistanceR1 = 12683 B2 + 410 B + 315R2 = 745 B + 420图 6: 磁电阻随磁场的变化关系set label q=q+1 sprintf(”R_1=%.0fB2+%.0fB+%.0f”, a,b,c) at graph p1,p2leftset label q=q+1 sprintf(”R_2=%.0fB+%.0f”, k,d) at graph p1,p20.1 leftplotdatafile using 6:7 notitle lw 2, y1(x) notitle lw 2, y2(x) notitle lw 2这次纯粹为优化代码
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- gnuplot 使用手册
限制150内