我正在尝试使用批处理脚本使用xmgrace绘制数据。但是,我在尝试查找有关如何执行此操作的文档时遇到了重大问题。我正在尝试制作一个面板图,图表看起来像这样:
我这样做有三件事有问题:
1)我希望能够为面板图中的每个图指定x轴和y轴的限制(或者对于所有图形同时更好),我还没有找到怎么做此
2)数据存储在两个不同文件的六列中。两个文件的x值都在第1列中。我希望能够使用与我使用
的gnuplot类似的语法导入数据使用1:(2.0 * $ 3)
绘制'file.dat'
将第3列映射到第1列,并将第3列中的值乘以2.0。这里重要的是我需要将其中一个文件中的一些列与2.0相乘,以便以易于理解的方式将它们与另一个文件的内容进行比较。我也更喜欢一种语法,我可以一次导入一列,而不是使用
READ NXY“file.dat”
它读取所有列,我必须杀死那些我不想要的列。
3)如何更改图表的尺寸?使用
更改画布的尺寸PAGE SIZE宽度,高度
不会更改图形的尺寸,也不会改变画布的尺寸。具有4乘2图表的面板图的默认大小(这是我想要的)没有显示足够的细节。
我发现这个页面有点帮助: http://ringo.ams.sunysb.edu/index.php/Xmgrace
但它不包含我需要做的所有事情的例子。
到目前为止,我的批处理脚本如下所示:
#制作小组图 排列(1,1,.1,.2,.5,ON,OFF,OFF)
#选择第一个面板
聚焦G0
#我希望这条线允许我改变轴限制,但它不起作用:
世界0,-1,20,1 #each文件有6列
#s0到s4
READ NXY“file2.dat”
#s5到s9
READ NXY“file1.dat”
s0线颜色1
s1线颜色2
s2线颜色3
s3线颜色4
#s5和s6需要乘以2.0
s5线颜色1
s5 linestyle 4
s6线色2
s6 linestyle 4
s7线色3
s7 linestyle 4
s8线色4
s8 linestyle 4
s9线色5
杀死G0.s4
xaxis标签“时间”
xaxis tick place normal yaxis标签“密度”
PAGE SIZE 2500,2000
答案 0 :(得分:1)
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 2
与3
"file.dat"
相乘,您可以使用
2
请注意,当读入额外的数据块时,会创建具有增量后缀的较新集,例如s4.y = 2*s4.y
s5.y = 2*s5.y
。由于未读取s0, s1, s2, ....
column 6
,因此相对于原始脚本,这些集的编号不同。
3)更改图表的尺寸(例如file2.dat
)
G0