如何在单个语句中为 xmgrace 中的所有集合设置 属性
How to set a property for all sets in xmgrace in a single statement
假设我有 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
)。
假设我有 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
)。