我想在单个图像中绘制不同的线条。每行保存在不同的纯文本文件中,它包含:x | y |深度。因此,我写了这个名为'plot_vg'的文件:
set term pngcairo size 1000,8005
list = system('ls')
i = 1
set output 'image.png'
do for [file in list] {
if (file ne 'image.png') {
if (file ne 'plot_vg') {
if (file ne '..') {
if (i==1) {
i=0
plot sprintf('%s',file) using 1:2:3 with lines notitle
} else{
replot sprintf('%s',file) using 1:2:3 with lines notitle
}
}
}
}
}
我的问题是,最后,保存的图像只是最后一个重绘图而不包括其余的行。我已经看到它进入循环并且它完成了1个情节然后,其余的都是重复的。如果我从术语打开gnuplot并且我先编写1个绘图然后重新编写,则显示的图像就是我想要的。这里的错误在哪里?
我从这里Gnuplot - Using replot with png terminal尝试了第一个选项,但我得到一个空白的图像文件。
答案 0 :(得分:1)
在您阅读文件列表时已经进行了过滤,然后使用plot for [file in list]...
进行迭代:
set term pngcairo size 1000,8005
list = system("ls | grep -v 'image.png\|plot_vg'")
set output 'image.png'
set style data lines
unset key
plot for [file in list] file using 1:2
如果您的数据文件遵循某种模式,您也可以使用类似
的内容list = system("ls *.txt")
另请注意,简单的plot with lines
仅使用两列。