0

假设我有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

我认为该声明会根据本手册起作用,但事实并非如此。Xmgrace 引发错误并且不为所有集合绘制符号。

4

1 回答 1

0

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

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

我发现如果您希望将默认值应用于它们,则需要在 read 语句之前编写它们。例如,这将为 设置 line-width 和 line-style file2.dat,但不为file1.dat

READ XYDY "file1.dat"

DEFAULT LINEWIDTH 3
DEFAULT LINESTYLE 3

READ XYDY "file2.dat"

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

于 2020-04-25T20:18:51.937 回答