【问题标题】:Plotting curves from multiple files with gnuplot使用 gnuplot 从多个文件中绘制曲线
【发布时间】:2020-11-08 19:56:41
【问题描述】:

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

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

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

示例目录结构:

- Ntimestep=100
  ~ occ.dat
  ~ <other files>
- Ntimestep=200
  ~ occ.dat
  ~ <other files>

【问题讨论】:

  • 你的问题很不清楚。请提供几个示例文件夹名称和文件名,以及您的数据和绘图命令的示例。

标签: gnuplot


【解决方案1】:

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 管道传输)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多