如何在单个语句中为xmgrace中的所有集合设置属性

问题描述 投票:1回答:1

假设我有file1.datfile2.dat。我想绘制它们,并且对于这两个集合,都将其线宽设置为2(对于误差线也是如此),并将符号设置为圆形。目前,我调用

xmgrace -batch batch.xmg

带有此batch.xmg

READ XYDY "file1.dat"
READ XYDY "file2.dat"

S0 LINEWIDTH 2
S0 SYMBOL 1
S0 ERRORBAR LINEWIDTH 2
S0 ERRORBAR RISER LINEWIDTH 2

S1 LINEWIDTH 2
S1 SYMBOL 1
S1 ERRORBAR LINEWIDTH 2
S1 ERRORBAR RISER LINEWIDTH 2

它可以按预期工作,但是batch.xmg随着数据文件(因此,集)的数量增加而变得很大且非常重复。此外,每当我要修改公共属性时,都必须遍历所有集合并更改相应的值(或使用文本处理工具,例如sed)。

然后,我问:有什么办法可以为所有集合设置一个属性的全局语句?例如,类似

SETS SYMBOL 1

我以为该语句将有效according to this manual,但无效。 Xmgrace引发错误,并且所有集合均未绘制符号。

batch-processing xmgrace
1个回答
0
投票

我忽略了Defaults section。这些语句可用:

DEFAULT LINESTYLE number
DEFAULT LINEWIDTH number
DEFAULT COLOR number
DEFAULT CHAR SIZE number
DEFAULT FONT number
DEFAULT SYMBOL SIZE number
DEFAULT SFORMAT number 

我发现您需要在读取语句之前编写它们如果您希望将默认值应用于它们。例如,这将为file2.dat设置线宽和线型,但不会为file1.dat设置线宽和线型:

READ XYDY "file1.dat"

DEFAULT LINEWIDTH 3
DEFAULT LINESTYLE 3

READ XYDY "file2.dat"

但是,请注意,不幸的是,并非所有属性都可用(例如,您无法设置DEFAULT SYMBOL 1)。

© www.soinside.com 2019 - 2024. All rights reserved.