我想在同一个图中用gnuplot绘制不同目录中包含的一系列数据。
我有一个名为“Ntimestep = X”的文件夹集合(其中X可以是例如100,200,400等)。在这个文件夹的每一个里面,我有一个文件occ.dat,里面包含我要绘制的数据,比方说3列(第一个x点,第二个和第三个y点)。 我希望我的gnuplot脚本自动检测时间“Ntimestep = X”的所有文件夹,并在我的图中添加文件“Ntimestep = X / occ.dat”中包含的数据。
我还希望数字X出现在情节的图例中。
答案 0 :(得分:3)
Gnuplot本身不能创建这样的文件列表,但你可以调用一些命令行工具或第二个创建这样一个列表的脚本,然后由gnuplot使用。
类似
list = system('ls Ntimestep=*/occ.dat')
plot for [file in list] file
在Windows上list = system('dir /b *.txt')
应该有效,请参阅Script Gnuplot on windows OS(我无法测试)。
要获取标题中的数字,只使用gnuplot,您可以使用
t(s) = (s2 = s[11:*], s2[0:strlen(s2)-8])
plot for [file in list] file title t(file)
为了更灵活地处理字符串格式,您还需要使用外部工具(例如,将ls
的输出通过sed
)。