如何在gnuplot中绘制输入数据的自动序列?

如何在gnuplot中绘制输入数据的自动序列?,plot,gnuplot,Plot,Gnuplot,我有很多结果,我想打印并自动保存它们。我试图在帮助手册中找到,但还没有找到。当我绘制每个文件时,我花了很多时间。你能帮帮我吗 例如,我有10个文本文件,它们的名称是conf-a00到conf-a09,我想自动打印并保存它们 非常感谢你的帮助 Vinh Du您有几种可能性: 您可以使用“模板” 例如,如果您有以下文件foo.gpl: #foo.gl set term png set output "OUTFILE" plot "DATAFILE" using 1:2 with lines 然

我有很多结果,我想打印并自动保存它们。我试图在帮助手册中找到,但还没有找到。当我绘制每个文件时,我花了很多时间。你能帮帮我吗

例如,我有10个文本文件,它们的名称是conf-a00到conf-a09,我想自动打印并保存它们

非常感谢你的帮助


Vinh Du

您有几种可能性:

  • 您可以使用“模板”
例如,如果您有以下文件foo.gpl:

#foo.gl
set term png
set output "OUTFILE"
plot "DATAFILE" using 1:2 with lines
然后,可以使用shell脚本修改模板:

#!/bin/bash
for i in {01..09}
do
    sed 's/DATAFILE/conf-a'${i} s/OUTFILE/graph'${i}'.png/' template.gnuplot > /tmp/foo
    gnuplot /tmp/foo
done
rm /tmp/foo
  • 在gnuplot中使用变量
例如(未测试):

在gnuplot中,您需要

i = 1
n = 9
set term png
load "loop.gpl"
loop.gpl包含:

datafile = "conf-a0".i
outfile  = "graph".i.".jpg"

set output outfile
plot datafile using 1:2 with lines
set output
i=i+1
if (i <= n) reread
编辑: 使用您的信息:

cat newloop.gpl

datafile = "data-a0".i 
outfile = "graph0".i.".png" 
set output outfile 
plot datafile w lp lw 2.5 
i=i+1 
set output
if (i <= n) reread 
生成不同大小的图形:

-rw-rw-r-- 1 fred fred   5430 avril 17 23:20 graph01.png
-rw-rw-r-- 1 fred fred   5228 avril 17 23:20 graph02.png
-rw-rw-r-- 1 fred fred   5248 avril 17 23:20 graph03.png
-rw-rw-r-- 1 fred fred   5685 avril 17 23:20 graph04.png
-rw-rw-r-- 1 fred fred   5818 avril 17 23:20 graph05.png

非常感谢Fredtantini应用了您的方法,但它只导出第一个结果文件,其他文件不导出,尽管我尝试了使用您的三种方法。同样的情况。此代码用于设置术语pngcairo透明增强字体“Helvetica,22”fontscale 1.0大小14201000 i=1 n=5设置网格设置对数刻度x设置xlabel'P(kPa)'set ylabel'Z'设置格式y“%.2f”设置格式x“10^{%L}”设置标题“各向同性压力循环中的坐标数”设置点大小2数据文件=“cnprv0”.i outfile=“cnprv0.i.”.png“设置输出输出文件绘图数据文件w lp lw 2.5 i=i+1如果(i@vinh du)我编辑了我的答案,但我认为你在某个地方犯了错误。它可以与我一起为[i=0:5]{.datafile=sprintf('phi45-f002-v0%d.txt',i)outfile=sprintf('phi45-f002-v0%d.png',i)为[j]设置输出输出文件do“0.1 0.5 1.0 1.5 2.0”]{绘图数据文件t'{/Symbol F}=0.45-F=0.02-v='.j带框,\n数据文件使用1:($2+1.5):2带标签notitle}}@fredtantini:我已经编辑了这段代码,没问题。我还有另一个问题:我想导出一系列输出文件,其中的图名添加了扩展名“j”。你能帮我吗!
gnuplot> i = 1 
gnuplot> n = 5 
gnuplot> set grid
gnuplot> set logscale x 
gnuplot> set xlabel 'P (kPa)' 
gnuplot> set ylabel 'Z' 
gnuplot> set format y "%.2f" 
gnuplot> set format x "10^{%L}" 
gnuplot> set title 'Coordination number in isotropic pressure cycle' 
gnuplot> set pointsize 2
gnuplot> 
gnuplot> load "newloop.gpl"
-rw-rw-r-- 1 fred fred   5430 avril 17 23:20 graph01.png
-rw-rw-r-- 1 fred fred   5228 avril 17 23:20 graph02.png
-rw-rw-r-- 1 fred fred   5248 avril 17 23:20 graph03.png
-rw-rw-r-- 1 fred fred   5685 avril 17 23:20 graph04.png
-rw-rw-r-- 1 fred fred   5818 avril 17 23:20 graph05.png