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

How to set a property for all sets in xmgrace in a single statement

假设我有 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 引发错误并且没有为所有集合绘制符号。

我忽略了 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)。