假设我有file1.dat
和file2.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
)。