李继存
Xmgrace学习笔记
2015-8-11 23:40
阅读:40009

Xmgrace学习笔记

  • 整理: 李卫星

对于用惯Linux的人, 在Linux下画图有点不方便, gnuplot虽然挺不错, 但是不能直接在图上进行操作, 这是它的不足吧. 为此, 简单介绍一下xmgrace.

安装

xmgrace可以直接用命令来安装:

sudo apt-get install xmgrace

也可以下载软件包自己编译. 官网http://plasma-gate.weizmann.ac.il/Grace/.

这里有一个整理好的压缩包, 里面包含了xmgrace–5.1.25的源代码以及一些资料.

grace和xmgrace差不多, 具体区别自己看网上.

一些资源

几个网址:

  1. Discussions讨论区

  2. An Xmgrace Tutorial

  3. Grace Tutorials, 个人觉得这个是不错的

  4. Grace/Xmgrace (Xmgr)

  5. Grace User’s Guide

下载上面的grace–5.1.25后, Grace Tutorial教程实例文件在grace-5.1.25/doc下面(Tutorial.pdf也在). 还有一些做好的图例在grace-5.1.25/examples, 从那里可以看到xmgrace也是可以的. 下面是随便挑的几张, 图片的的字体都是用xmgrace加上去的.

本文档主要是学习Grace Tutorials的总结, 如有不对, 请指正.

基本操作1. 简单画图:使用数据文件

可以在工作目录下打开终端, 输入xmgrace file.

如果数据文件里面是多列数据, 即X Y1 Y2…, 可以输入xmgrace -nxy file. 加上-nxy就可以是多条曲线了.

如果要对坐标轴取对数, 可以添加选项 -log x|y|xy, 如:xmgrace -log x -nxy file. (好像要放前面, 放后面会出错!)

2. 简单绘图:导入文件

也可以在终端只输入xmgrace, 不带文件名, 打开空白的xmgrace再自己导入. 点击菜单Data | Import | ASCII在files下拉框选择文件, 点一下OK就可以了.

注意, 好像只有扩展名为.dat的才显示, 而.xvg格式的不显示, 需要自己改一下扩展名. 还有就是, 如果文件路径有中文的话显示会出现乱码, 但仍然可以选择, 只要你确定哪个是你的文件.

3. 创建数据表格

也可以自己用表格创建绘图数据. 在终端输入xmgrace, 打开空白的xmgrace. 点击菜单Main | Edit/Data_sets...窗口, 在上面的空白框中, 一直右击按住出现菜单移动(右击还不要放开), 选creat new选in spreadsheet(这里还有另外三个, 如编写公式输入, 你可以自己摸索或看手册)打开表格, 就可以输入x y点数值了.

4. 保存图像

画好了图片就保存, 点击File | print_setup, 在device选格式, 我常选png, 对不起的是好像没有tiff格式可选. 输入想要保存的名字, 点aceept退出窗口, 按一下快捷键ctrl+p就保存了. 其实也可以用File | print, 但最好记住快捷键. 看看目录内是否有图片文件.

xmgrace不像origin那样有什么工程文件, 它的设置不会自动保存, 所以你上一次对数据的操作是不会保存的. 这很麻烦. 所以如果我们以后还要对文件进行操作(如坐标轴, 曲线粗细不够的等问题), 很麻烦, 其他的设置要重新做一遍. 为避免这些麻烦, 就得保存设置. 点击菜单File | save或File | save as. File | save直接把设置加入到你的数据文件开头, 自己操作完可以去看看. File | save as就是另存一份, 原数据文件开头添加设置. 如果开头保存有设置的话, 直接右击用xmgrace查看, 就可以看见你原来设置的图片. 你修改后, 重新File | save. 这样也有一些好处, 如果多个文件都是一样设置, 做好一个文件, 把设置保存到数据文件开头, 然后把它们复制到其他文件, 就搞定了, 然后再用xmgrace输出图片.

你可以去grace-5.1.25/exemple打开各个文件学习一下各种图是如何进行设置的.

5. 选择数据列

第一点说过如何使用-nxy选项绘制多列数据, 但如果只想用第1和第3列数据画图, 咋办? 可以使用xmgrace -block file.dat -bxy 1:3. 其中-bxy就是选1和3两列. 也可以在-nxy打开多条曲线后, 点击图上的曲线, 出现set appearance窗口, 在select set下, 选中不要的数据列, 长按右击移动选hide就可以了(数据列多的话, 就麻烦一些);

说到这里, 说一下对文件的数据处理, 看示例:

xmgrace -nosafe -nxy box.xvg -pexec "s0.y=(s0.y*s1.y)/64" -pexec "kill s1" -pexec "autoscale"

我的文件box.xvg中有三列数据, 时间帧、盒子x大小、盒子y大小, 计算膜表面的APL(area prea lipid)是用x*y/64. 用xmgrace怎么计算呢? 像上面那样用-pexec选项输入参数命令就可以了. 输出的图像就是x轴是时间, y轴是经过处理的得到的APL. 更具体的请看手册教程.

还是再说一些多列数据的情况. data | Import/ASCII选好dat文件后在中间那里看到load as了吧, 点一下选block data, 后点ok跳出来框框, x from column自己选y from column, 选好就可以. 如果都选1, 会是什么图像, 猜一下, xy都是一样的值, 当然是45度斜率的直线y=x. 那里可以选偏差条, 就是xydy, 自己摸索了.

6. 图像设置

数据选择操作说的差不多, 说一下图片的外观设置(也就是具体的坐标轴文字大小、间距、范围, 图片标题, 线条粗、细颜色等). 我们可以双击相应的地方(和origin类似, 自己体会)也可以菜单里选择plot | plot appearance.

说一下一些基本的操作:

  • Legends: 图例, 就是多条曲线时小框用不同颜色标记出来

  • frame: 画出的图的框框

  • tick label: 就是坐标的下面的坐标间隔标度1 2 3 4 5 6

  • tick mark: 就是坐标轴的突起的刻度, 如 1 头上对应轴有个突起

  • leg.box: 在标题窗口里面. 可以调整图例的位置, 里面的location设置就可以了

  • axis placement: 用处在 y 轴 坐标在–1.51.5 范围时, 坐标轴若在y=–1.5 处 就去zreo axis点一下就可以了.

图像的四个角可以拉大拉小的, 如果不合适自己调.

如果有多条曲线, 出现了图例与曲线重叠, 可以试试这样操作:拖动图例的方法, Ctrl+L单击, 就可以使箭头变手形, 拖动图例了. 如还不行, 双击再试试看可以了吗. 也可以在appearance更改.

记住set appearance要在窗口里面的select set位置选相应的s0 s1...., main标签下的Legend就是图例, 你可以给每条曲线标记不同名字以便区分.

还有需要说一下的画布左边的按钮, 就说一个吧, AS表示恢复(图片设置的外观不变的, 好). 所以你按钮按错了, 点它就行了.

如果用不同坐标刻度值时, 也就是跳跃很大, 如μs, ms, s, 在Axes(双击坐标轴就出来了)的窗口的tick properties框里面选Format, 里面好几种格式, 选Compute(K, M, G....)或Engnieering, 这样就可以一个坐标轴多个单位了. 不用显示那么长的数字串.

7. 多图并列

有时候要一个画布放多张图, 打开菜单Edit | Arrange_graphs对话框, 填写需要几rows几columns, 点应用, 就出来四个小框了(假设2*2格式). 具体外观, 可以在刚才的框框里继续调节, 点击各个小框点击, 像前面的第2点那样选好文件进来就可以. 具体其他调节参看前面的6步骤操作.

也可以使用命令输入, 加上指令就可以了:

-pexec "arrange (2, 2, .1, .1, .1, ON, ON, ON)"

前面的两个2代表2*2排列, 加上-graph更好, 代表的是后面接的文件放在哪个位置, 从0开始数:

xmgrace -graph 2 10_rdf.xvg -graph 1 11.dat -graph 0 rdf01.dat -graph 3 rdf.dat -pexec "arrange(2,2,.1,.1,.1,ON,ON,ON )"8. 内嵌图形

说实话, xmgrace做内嵌图像, 我也没懂, 希望会的人能介绍一下. 参考方法:

打开菜单Edit | overlay_graphs, 点中在overlay graph的G0, 然后右击, 选creat new, 出现了另一个空数据集. 然后overlay graph和on to, 反正个数据集就可以, 后点同意, 就两个图的, 当然看起来是一个, 自己点一下四周点移动, 就可以看见两个的, 只是重叠而已. 然后一个一个添加数据了. 刚才说了内嵌图形还记得吗, 这里也可以把其中一个图拉小移动作为一个内嵌图, 再修改一下需要显示的坐标范围. 具体靠自己去实践了.

9. 双y轴曲线

有时候我们需要同一图像两条不同y轴的曲线, 如例子:坐标x表示时间, 左边y轴代表压力, 右边y轴代表是温度. 注意调整坐标刻度, 在Axes窗口tick label和tick mark的draw on, 一个选正常normal side, 一个选oppsite side相反, 就可以了. 对边的刻度就不要显示了.

10. 数据拟合

选项在data | tramsformation.

线性拟合

打开图像后

  1. 点击菜单DATA | TRANSFORMATION | REGRESSION

  2. 选择SET

  3. 选择LINEAR FIT

  4. 按下ACCEPTn

  5. 出来一个窗口显示拟合的直线方程表达式了. 如果需要斜率, 就自己记下方程. Save the information about the slope and intercept that appear in a blue console as slope.dat.

二次方程

点击DATA | TRANSFORMATION | INTERPOLATION/SPLINE

选择SET | METHOD | CUBIC SPLINE, START设为1, STOP设为10, LENGTH设为500或1000, 然后点击`ACCEPT.

非线性拟合

输入方程形式, 还要输入参数初始值.

附录: 图像文本设置

如果像gnuplot文件那样修改设置的话, 我们直接修改文本就可以了. 可以参考grace-5.1.25/exemple下的示例文件去学习, 吃透了就是xmgrace的高手了. 下面是其中部分参数的意义.

  • @ title "" 标题

  • @ title font 0 标题字体格式

  • @ title size 1.500000 标题字体大小

  • @ xaxis bar linewidth 3.0 坐标轴粗细

  • @ xaxis label “E (KJ/mol)” x坐标轴表示的物理量

  • @ xaxis tick major 100 单位刻度100

  • @ yaxis label "" y坐标轴表示的物理量

  • @ yaxis tick major 2 每隔2画一个标度, 也就是精度为1

  • @ s5 line linewidth 3.0 第6条曲线的的粗细

  • @ xaxis tick major 轴上的标度

  • @ xaxis ticklabel char size 2.000000 轴上的标度 显示大小

  • @ s3 hidden false 是否隐藏曲线

  • @ s3 legend “Interface” 第四条曲线的图例的名称标示, 就是表示哪条曲线

  • @ s3 symbol 5 曲线的点的符号, 如圆圈, 星号, 倒三角

  • @ s3 line type 5 曲线变成长虚线, 1是直线

  • @ page size 792, 612 白色画布的大小

颜色代码的意义

  • @map color 0 to (255, 255, 255), “white”

  • @map color 1 to (0, 0, 0), “black”

  • @map color 2 to (255, 0, 0), “red”

  • @map color 3 to (0, 255, 0), “green”

  • @map color 4 to (0, 0, 255), “blue”

  • @map color 5 to (255, 255, 0), “yellow”

  • @map color 6 to (188, 143, 143), “brown”

  • @map color 7 to (220, 220, 220), “grey”

  • @map color 8 to (148, 0, 211), “violet”

  • @map color 9 to (0, 255, 255), “cyan”

  • @map color 10 to (255, 0, 255), “magenta”

  • @map color 11 to (255, 165, 0), “orange”

  • @map color 12 to (114, 33, 188), “indigo”

  • @map color 13 to (103, 7, 72), “maroon”

  • @map color 14 to (64, 224, 208), “turquoise”

  • @map color 15 to (0, 139, 0), “green4”

上面的这些在.xvg文件开头写出来给我们参考. 让我们明白这些数字代表什么颜色. 还有下面的字体格式部分

字体代码的意义:

  • @map font 8 to “Courier”, “Courier”

  • @map font 10 to “Courier-Bold”, “Courier-Bold”

  • @map font 11 to “Courier-BoldOblique”, “Courier-BoldOblique”

  • @map font 9 to “Courier-Oblique”, “Courier-Oblique”

  • @map font 14 to “Courier-Regular”, “Courier-Regular”

  • @map font 15 to “Dingbats-Regular”, “Dingbats-Regular”

  • @map font 4 to “Helvetica”, “Helvetica”

  • @map font 6 to “Helvetica-Bold”, “Helvetica-Bold”

  • @map font 7 to “Helvetica-BoldOblique”, “Helvetica-BoldOblique”

  • @map font 5 to “Helvetica-Oblique”, “Helvetica-Oblique”

  • @map font 20 to “NimbusMonoL-Bold”, “NimbusMonoL-Bold”

  • @map font 21 to “NimbusMonoL-BoldOblique”, “NimbusMonoL-BoldOblique”

  • @map font 22 to “NimbusMonoL-Regular”, “NimbusMonoL-Regular”

  • @map font 23 to “NimbusMonoL-RegularOblique”, “NimbusMonoL-RegularOblique”

  • @map font 24 to “NimbusRomanNo9L-Medium”, “NimbusRomanNo9L-Medium”

  • @map font 25 to “NimbusRomanNo9L-MediumItalic”, “NimbusRomanNo9L-MediumItalic”

  • @map font 26 to “NimbusRomanNo9L-Regular”, “NimbusRomanNo9L-Regular”

  • @map font 27 to “NimbusRomanNo9L-RegularItalic”, “NimbusRomanNo9L-RegularItalic”

  • @map font 28 to “NimbusSansL-Bold”, “NimbusSansL-Bold”

  • @map font 29 to “NimbusSansL-BoldCondensed”, “NimbusSansL-BoldCondensed”

  • @map font 30 to “NimbusSansL-BoldCondensedItalic”, “NimbusSansL-BoldCondensedItalic”

  • @map font 31 to “NimbusSansL-BoldItalic”, “NimbusSansL-BoldItalic”

  • @map font 32 to “NimbusSansL-Regular”, “NimbusSansL-Regular”

  • @map font 33 to “NimbusSansL-RegularCondensed”, “NimbusSansL-RegularCondensed”

  • @map font 34 to “NimbusSansL-RegularCondensedItalic”, “NimbusSansL-RegularCondensedItalic”

  • @map font 35 to “NimbusSansL-RegularItalic”, “NimbusSansL-RegularItalic”

  • @map font 36 to “StandardSymbolsL-Regular”, “StandardSymbolsL-Regular”

  • @map font 12 to “Symbol”, “Symbol”

  • @map font 38 to “Symbol-Regular”, “Symbol-Regular”

  • @map font 2 to “Times-Bold”, “Times-Bold”

  • @map font 3 to “Times-BoldItalic”, “Times-BoldItalic”

  • @map font 1 to “Times-Italic”, “Times-Italic”

  • @map font 0 to “Times-Roman”, “Times-Roman”

  • @map font 43 to “URWBookmanL-DemiBold”, “URWBookmanL-DemiBold”

  • @map font 44 to “URWBookmanL-DemiBoldItalic”, “URWBookmanL-DemiBoldItalic”

  • @map font 45 to “URWBookmanL-Light”, “URWBookmanL-Light”

  • @map font 46 to “URWBookmanL-LightItalic”, “URWBookmanL-LightItalic”

  • @map font 47 to “URWChanceryL-MediumItalic”, “URWChanceryL-MediumItalic”

  • @map font 48 to “URWGothicL-Book”, “URWGothicL-Book”

  • @map font 49 to “URWGothicL-BookOblique”, “URWGothicL-BookOblique”

  • @map font 50 to “URWGothicL-Demi”, “URWGothicL-Demi”

  • @map font 51 to “URWGothicL-DemiOblique”, “URWGothicL-DemiOblique”

  • @map font 52 to “URWPalladioL-Bold”, “URWPalladioL-Bold”

  • @map font 53 to “URWPalladioL-BoldItalic”, “URWPalladioL-BoldItalic”

  • @map font 54 to “URWPalladioL-Italic”, “URWPalladioL-Italic”

  • @map font 55 to “URWPalladioL-Roman”, “URWPalladioL-Roman”

  • @map font 56 to “Utopia-Bold”, “Utopia-Bold”

  • @map font 57 to “Utopia-BoldItalic”, “Utopia-BoldItalic”

  • @map font 58 to “Utopia-Italic”, “Utopia-Italic”

  • @map font 59 to “Utopia-Regular”, “Utopia-Regular”

  • @map font 13 to “ZapfDingbats”, “ZapfDingbats”

最后还是说一句, 有些方法不懂话, 看看grace-5.1.25/examples下面的例子, 右击用grace打开, 看看人家的图的设置, 有你想要的效果吗, 仔细琢磨一下人家怎么设置的. 这是最好的学习方法, 比看教程好很多, 当然这是个人认为.

◆本文地址: http://jerkwin.github.io/GMX/GMXtut-12.html, 转载请注明◆

转载本文请联系原作者获取授权,同时请注明本文来自李继存科学网博客。

链接地址:https://wap.sciencenet.cn/blog-548663-912350.html?mobile=1

收藏

分享到:

当前推荐数:1
推荐人:
推荐到博客首页
网友评论3 条评论
确定删除指定的回复吗?
确定删除本博文吗?