【问题标题】:Plotting multiple files to single ps file in different pages using gnuplot使用gnuplot将多个文件绘制到不同页面中的单个ps文件
【发布时间】:2015-11-05 14:58:33
【问题描述】:

我有文件夹 10,11,12,...50。 在所有文件夹中,我都有数据文件“data.dat”。 我想将所有这些文件中的数据绘制到单个 ps 文件中。每个文件都有自己的页面。喜欢:

plot "10/data.dat" u 1:3 w l, "10/data.dat" u 1:4 w l, "10/data.dat" u 1:5 w l

plot "11/data.dat" u 1:3 w l, "11/data.dat" u 1:4 w l, "11/data.dat" u 1:5 w l

.....

plot "50/data.dat" u 1:3 w l, "50/data.dat" u 1:4 w l, "50/data.dat" u 1:5 w l

所以每个文件都有自己的页面,而 ps 文件将有 41 个页面。 如何在 gnuplot 中使用某种循环结构来做到这一点?或者我应该如何使用shell脚本?

【问题讨论】:

标签: shell plot gnuplot postscript


【解决方案1】:

您应该使用do for,因为plot for 会将它们全部绘制在一个页面中。

do for [i=10:41] {
    set title "Plot ".i
    plot "".i."/data.dat" u 1:3 w l, "" u 1:4 w l, "" u 1:5 w l
}

【讨论】:

  • 太棒了!谢谢!不过还有一个问题。如何将图形的标题设置为“i”的值,即set title "plot for $i"
  • 在计算中应该如何使用 i?例如,set title "Plot" .i.-5set title "Plot" .i.*5
  • 没关系。我用set title sprintf("Plot %d",i-5)。但如果知道如何以另一种方式做也很好!
  • @PopulationXplosive . 是字符串连接运算符,它接受一个数字或另一个字符串作为正确的操作数,因此您可以像 "plot ".(i-5)"plot ".(i*5) 一样使用它。但是,您应该注意,数字没有此运算符,因此 i."/data.dat" 将是一个错误,但您可以通过首先应用一个空字符串来规避此问题,这就是我写 "".i."/data.dat" 的原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-10
相关资源
最近更新 更多