Qtgrace绘图程序学习小记

Qtgrace绘图程序的常见操作,基本上也适用于xmgrace/grace软件。

GROMACS输出xvg文件读取

单图

读取xvg文件

工具栏依次点击Data -> Import -> ASCII,找到.xvg文件,如果是单Y则选择Single set,多Y变量则选择NXY,然后点击OK完整导入,可以看到图形,如下图:

看上去不太美观,那么我们就来调一调。

  • 调整字体坐标轴字体类型、大小。一般来说英文字体用的最多的当属Times New Roman,大小12pt即可。双击坐标轴,弹出Axis属性对话框,分别对X axisY axis调整如下:
  • 添加图例,删除最上方文字。双击图框中的任意位置,弹出Set Appearance对话框。可以自己更改图例名称和类型,图形线宽、颜色等等。调整如下: 双击图上方文字,弹出Graph Appearance对话框。可以设置标题、图例位置等。移动图例可以用Ctrl+L快捷键,然后鼠标左键按住图例拖动,点击右键确定。调整如下:

最终效果图如下:

多图

qtgrace多幅图组合在一起的原理就是通过布局,然后分别单独编辑每一个图的样式。这里以2x2布局说明。

  • 依次点击工具栏Edit -> Arrange Graphs,弹出组图对话框,设置行和列分别为2,如下图: 点击Apply得到下图,总计4个小图:
  • 然后按照之前的方法,分别点击每一个图框,导入相关数据,设置样式等等即可,最终效果如下图

常见输入文本语法

语法 显示
x\c2\C $x^2$
25C\c0\C $25C^o$
\c1\C\c0\C25 cm $\pm25\,cm$
5 \cE\C $5\,\overset{\circ}{A}$
5 \c5\C $5\,\mu$
\cx\C $\phi$
\R{green}Y 改变单词Y的颜色为绿色
\2 nm 加粗 nm

常规数据绘图

常见的点线图

需要准备多列数据组成的纯文本文件,然后按照上面的方式导入即可。

条形图

  • 单组条形图的绘制比较简单,现有数据如下:
    1
    2
    3
    4
    5
    1 20
    2 25
    3 12
    4 19
    5 9

首先按照之前的方式导入数据,此时成折线图,然后双击折线,弹出Set Appearance对话框。将Type改为BarLine properties改为None,如下图设置:


最后调整颜色,坐标轴显示等等,得到效果图如下:

  • 带有误差棒的条形图
    十分简单,只需要在数据后面追加一列误差值即可,将Type改为BARDY,其他设置如上。最终效果图如下:

  • 多组条形图
    添加一组数据,得最终效果图如下:

曲线平滑

一般而言,数据波动太大导致图形不美观,有时候可能要对曲线做相应的平滑处理,其中一种方式就是通过移动平均消除这种波动。这在Qtgrace里面也是可以实现的。

  • 导入数据绘制基本图,然后依次点击工具栏Data -> Transformations -> Running averages,弹出移动平均对话框,设置平均长度10,点击Accept即可得到下图:

图形叠加

首先按照上面讲的做出两张图,然后点击工具栏Edit -> Overlay graphs...弹出对话框,将第一幅图叠加到第二幅图上,点击Apply。双击图框角点拖动以改变上方图框大小,然后自行调整即可。最终效果见下图:

双Y轴图

根据上面的图形叠加方法,然后更改显示标签的坐标轴,设置其他样式即可。最终效果图如下:

数据拟合

  • 现有以下数据:
    1
    2
    3
    4
    5
    1 1.2
    2 2.1
    3 2.9
    4 4.15
    5 5.0

导入数据做散点图如下:

想要拟合为直线,则应该在工具栏依次点击Data -> Transformations -> Non-linear curve fitting...,弹出非线性拟合对话框(也可以能够拟合线性方程)。选择数据源,设置为两个参数,填写拟合方程,如图所示:

然后点击Apply,得到拟合参数信息。如下图:

然后点击工具栏Windows -> Drawing Objects。弹出绘制对话框,你可以将曲线方程添加到图中,也可以调整大小,位置和颜色等样式。最终效果图如下:

  • 现有数据如下:
    1
    2
    3
    4
    5
    6
    7
    1.24	193.33
    0.26 156.6
    2.64 218.28
    9.93 300.38
    14.81 310.67
    55.22 327.8
    72.31 335.53

导入数据做散点图如下:

想要拟合为特定曲线,则应该在工具栏依次点击Data -> Transformations -> Non-linear curve fitting...,弹出非线性拟合对话框(也可以能够拟合线性方程)。选择数据源,设置为3个参数,填写拟合方程,如图所示:

然后点击Apply如果拟合效果不好,多次点击Apply,得到拟合参数信息。如下图:


换一种方程拟合:

饼状图

  • 绘制饼状图相对复杂点,现有问题:某IT企业员工人数规模500人,JAVA工程师100人,C++工程师60人,Python工程师50人,PHP工程师100人,网络工程师190人。请绘制饼状图来阐明各个比例?
    解答:根据题意,可列得如下数据:
    1
    2
    3
    4
    5
    100 0 1 "JAVA Engineer"
    60 0 2 "C++ Engineer"
    50 0 3 "Python Engineer"
    100 0 4 "PHP Engineer"
    190 0 5 "Network Engineer"

其中,第一列表示各类人员数量,第二列表示饼状图移动比例为0,第三列数字代表各种颜色,第四列表示类别。
导入数据时Type改为XYCOLOR,双击图框外面空白,弹出Graph Appearance对话框,Type改为Pie chart,点击Apply,如下图:

然后双击图,弹出Set Appearance对话框,设置如下:

并得到如下图形:

再次设置Set Appearance对话框,勾选Annotate Values,设置TypeString,如下图:



最后美化一下即可,如下图:

当然,你也可以立体化图形一下,这时候改变上面数据的第二列,输入数据如下:

1
2
3
4
5
100 0.1 1 "JAVA Engineer"
60 0 2 "C++ Engineer"
50 0.2 3 "Python Engineer"
100 0.15 4 "PHP Engineer"
190 0.05 5 "Network Engineer"

最终成品图:

当然,如果这种图打印成黑白图一定很难看,那么你可以将上面步骤中的Type改为XYCOLPAT,然后对数据添加倒数第二列,为:

1
2
3
4
5
100 0.1   1  5  "JAVA Engineer"
60 0 2 12 "C++ Engineer"
50 0.2 3 15 "Python Engineer"
100 0.15 4 6 "PHP Engineer"
190 0.05 5 9 "Network Engineer"

倒数第二列数字表示填充图案指数,得到最终图形为:

曲线变换

该功能主要是对已有曲线点进行纵坐标进行数学变换,获得新的曲线。该功能在某些情况下十分有用。

  • 以计算扩散系数为例。首先根据已得数据绘制均方位移MSD-t图形如下:
  • 接下来为了确定扩散系数,需要根据MSD/6t的结果来得到线性区域段,从而确定最佳关联时间段。那么接下来我们需要作出MSD/6t-t的图像,操作如下:依次点击Data -> Transformations -> Evaluate expression弹出对话框,选中源数据Set,下面输入公式S1.Y = S0.Y/(6*S0.X),并点击Apply即可。注意:此时会报错告诉你表达式不能为0,这是因为MSD数据的第一个点为(0, 0),而0/(6*0)可能无意义,求不出来。因此你最好先删除这个点的源数据,这对后面确定拟合区域没影响。 其中S1.Y表示变换后的曲线Y值,S0.Y表示源数据Y值,S0.X表示源数据X值,意思就是说将源曲线的Y除以6倍X得到新曲线。得到的新曲线MSD/6t-t需要你适当调整一下纵坐标的范围才能显示出来,如下图: 从图中不难看出在1300~1500 ps之间曲线较为平稳,因此可以考虑在此阶段进行拟合得到扩散系数。

绘制箭头

可能在某些图中需要标注一些文字和箭头指向啥的,文字比较简单,依次点击Window -> Drawing objects -> Text,然后点击图中任意一点即可输入文字,并且可以调整大小,颜色等属性。绘制箭头可能稍微复杂一点,先要点击Window -> Drawing objects -> Line property设置一下箭头的属性,具体代表的含义如下图所示:

如果我们要绘制一个箭头。可以按照如下属性设置:

点击Accept,然后在图中点击一点拉动,再点击另一点即可绘制出箭头。最后可以画出如下箭头:

当然还可以调为双向箭头等形状,视情况而定。同理在此对话框中也可以绘制方框椭圆文字等物体。

文件的保存

一般可以将工作项目保存为.agr后缀格式文件,以便后期对图形的修改。另外,也可以将参数设置保存为.par后缀格式文件,以便减轻工作量。比如通过命令行模式-param xxx.par -free -legend load来处理同类型数据非常方便。

注意:由于该软件当拟合数据或者处理数据量较大的任务时容易崩溃,建议时常Ctrl+S保存备份文件。