使用gnuplot绘制来自多个文件的曲线

时间:2014-10-31 15:48:43

标签: gnuplot

我想在同一个图中用gnuplot绘制不同目录中包含的一系列数据。

我有一个名为“Ntimestep = X”的文件夹集合(其中X可以是例如100,200,400等)。在这个文件夹的每一个里面,我有一个文件occ.dat,里面包含我要绘制的数据,比方说3列(第一个x点,第二个和第三个y点)。 我希望我的gnuplot脚本自动检测时间“Ntimestep = X”的所有文件夹,并在我的图中添加文件“Ntimestep = X / occ.dat”中包含的数据。

我还希望数字X出现在情节的图例中。

1 个答案:

答案 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)。