1

我正在尝试使用批处理脚本来绘制带有 xmgrace 的数据。但是,我在尝试查找有关如何执行此操作的文档时遇到了重大问题。我正在尝试制作一个面板图,图表如下所示:

在此处输入图像描述

我在这样做时遇到了三件事:

1)我希望能够为面板图中的每个图表指定 x 轴和 y 轴的限制(或者同时为所有图表更好),但我还没有找到如何做到这一点。

2) 数据存储在两个不同文件的六列中。两个文件的 x 值都在第 1 列中。我希望能够使用与我使用的 gnuplot 类似的语法导入数据

使用 1:(2.0*$3) 绘制“file.dat”

绘制第 3 列与第 1 列,并将第 3 列中的值乘以 2.0。这里重要的是,我需要将其中一个文件中的一些列与 2.0 相乘,以便以易于理解的方式将它们与另一个文件的内容进行比较。我也更喜欢一种语法,我可以一次导入一个列,而不是使用

读取 NXY “file.dat”

它读取所有列,我必须杀死那些我不想要的。

3) 如何更改图表的尺寸?使用更改画布的尺寸

PAGE SIZE 宽度、高度

不会更改图形的尺寸,或者会更改但不会填充画布。具有 4 x 2 图形(这是我想要的)的面板图的默认大小没有显示足够的细节。

我发现这个页面有点帮助: http ://ringo.ams.sunysb.edu/index.php/Xmgrace

但它不包含我需要做的所有事情的例子。

到目前为止,我的批处理脚本如下所示:

# 制作面板图
排列 (1,1,.1,.2,.5,ON,OFF,OFF)
# 选择第一个面板
FOCUS G0
# 我希望这条线可以让我更改轴限制,但它不工作:
world 0, -1, 20, 1 #每个
文件有 6 列
#s0 到 s4
READ NXY "file2.dat"
#s5 to s9
READ NXY "file1.dat"
s0 line color 1
s1 line color 2
s2 line color 3
s3 line color 4
#s5和s6需要乘以2.0
s5 line color 1
s5 linestyle 4
s6 line color 2
s6 linestyle 4
s7 line color 3
s7 linestyle 4
s8 line color 4
s8 linestyle 4
s9 line color 5
KILL G0.s4
xaxis label "time"
xaxis tick place normal yaxis
label "density"
PAGE SIZE 2500, 2000

4

1 回答 1

2

1) 要同时指定所有图形的 x 轴和 y 轴的范围,请使用以下命令。

WORLD XMIN 0
WORLD XMAX 20
WORLD YMIN -2
WORLD YMAX 2

并且可以选择将沿 x 轴的刻度(主要和次要)指定为

XAXIS TICK MAJOR 0.5
XAXIS TICK MINOR 0.25

2) 一次导入一列的语法是

READ BLOCK "file2.dat"
BLOCK xy "1:2"
BLOCK xy "1:3"
BLOCK xy "1:4"
BLOCK xy "1:5"
READ BLOCK "file2.dat"
BLOCK xy "1:2"
BLOCK xy "1:3"
BLOCK xy "1:4"
BLOCK xy "1:5"
BLOCK xy "1:6"

要对特定列执行代数运算,例如乘法columns 23of "file.dat"with 2,您可以使用

s4.y = 2*s4.y
s5.y = 2*s5.y

请注意,当读入额外的数据块时,会创建具有增量后缀的更新集,例如s0, s1, s2, ..... 由于未读取column 6of file2.dat,因此此处的集合相对于原始脚本的编号不同。

3)改变图形的尺寸(比如G0

FOCUS G0;
VIEW 0.15, 0.15, 0.15, 0.85
于 2017-07-17T20:35:40.733 回答