如何在xmgrace中使用批处理脚本

时间:2016-12-09 20:19:20

标签: plot xmgrace

我正在尝试使用批处理脚本使用xmgrace绘制数据。但是,我在尝试查找有关如何执行此操作的文档时遇到了重大问题。我正在尝试制作一个面板图,图表看起来像这样:

enter image description here

我这样做有三件事有问题:

1)我希望能够为面板图中的每个图指定x轴和y轴的限制(或者对于所有图形同时更好),我还没有找到怎么做此

2)数据存储在两个不同文件的六列中。两个文件的x值都在第1列中。我希望能够使用与我使用

的gnuplot类似的语法导入数据
  

使用1:(2.0 * $ 3)

绘制'file.dat'

将第3列映射到第1列,并将第3列中的值乘以2.0。这里重要的是我需要将其中一个文件中的一些列与2.0相乘,以便以易于理解的方式将它们与另一个文件的内容进行比较。我也更喜欢一种语法,我可以一次导入一列,而不是使用

  

READ NXY“file.dat”

它读取所有列,我必须杀死那些我不想要的列。

3)如何更改图表的尺寸?使用

更改画布的尺寸
  

PAGE SIZE宽度,高度

不会更改图形的尺寸,也不会改变画布的尺寸。具有4乘2图表的面板图的默认大小(这是我想要的)没有显示足够的细节。

我发现这个页面有点帮助: http://ringo.ams.sunysb.edu/index.php/Xmgrace

但它不包含我需要做的所有事情的例子。

到目前为止,我的批处理脚本如下所示:

  

#制作小组图    排列(1,1,.1,.2,.5,ON,OFF,OFF)
   #选择第一个面板
   聚焦G0
   #我希望这条线允许我改变轴限制,但它不起作用:
   世界0,-1,20,1    #each文件有6列
   #s0到s4
   READ NXY“file2.dat”
   #s5到s9
   READ NXY“file1.dat”
       s0线颜色1
       s1线颜色2
       s2线颜色3
       s3线颜色4
       #s5和s6需要乘以2.0
       s5线颜色1
       s5 linestyle 4
       s6线色2
       s6 linestyle 4
       s7线色3
       s7 linestyle 4
       s8线色4
       s8 linestyle 4
       s9线色5
       杀死G0.s4
       xaxis标签“时间”
       xaxis tick place normal        yaxis标签“密度”
   PAGE SIZE 2500,2000

1 个答案:

答案 0 :(得分:1)

1)要同时为所有图形指定x轴和y轴的限制,请使用以下命令。

WORLD XMIN 0
WORLD XMAX 20
WORLD YMIN -2
WORLD YMAX 2

并可选择将沿x轴的刻度(主要和次要)指定为

XAXIS TICK MAJOR 0.5
XAXIS TICK MINOR 0.25

2)一次导入一列的语法是

READ BLOCK "file2.dat"
BLOCK xy "1:2"
BLOCK xy "1:3"
BLOCK xy "1:4"
BLOCK xy "1:5"
READ BLOCK "file2.dat"
BLOCK xy "1:2"
BLOCK xy "1:3"
BLOCK xy "1:4"
BLOCK xy "1:5"
BLOCK xy "1:6"

要对特定列执行代数运算,例如将columns 23 "file.dat"相乘,您可以使用

2

请注意,当读入额外的数据块时,会创建具有增量后缀的较新集,例如s4.y = 2*s4.y s5.y = 2*s5.y 。由于未读取s0, s1, s2, .... column 6,因此相对于原始脚本,这些集的编号不同。

3)更改图表的尺寸(例如file2.dat

G0