GNUPLOT-堆叠图像的输出阵列

GNUPLOT-堆叠图像的输出阵列,gnuplot,Gnuplot,在这篇文章的底部是gnuplot示例代码,它绘制了编号为001到103的.dat文件数组,并将它们转换为.png的数组。下面是第一张也是最后一张图片 问题是,我如何将001到103.png叠加在一起,并在这个过程中生成103个图像的输出数组?到目前为止,我已经成功地制作了一张图像,将001到103.dat的所有组合数据进行叠加。见下文 执行一个堆叠图像的代码位被注释掉 # Test.png - One merged data #filename(n) = sprintf("ar-

在这篇文章的底部是gnuplot示例代码,它绘制了编号为001到103的.dat文件数组,并将它们转换为.png的数组。下面是第一张也是最后一张图片

问题是,我如何将001到103.png叠加在一起,并在这个过程中生成103个图像的输出数组?到目前为止,我已经成功地制作了一张图像,将001到103.dat的所有组合数据进行叠加。见下文

执行一个堆叠图像的代码位被注释掉

# Test.png - One merged data
#filename(n) = sprintf("ar-agn--DensT-%03.0f.dat", n)
#plot for [i=1:103] filename(i) using 1:2:3 with points pointtype 5 ps 0.3 palette notitle
但是我需要的是一个输出的数组图像堆叠在一起

提前谢谢大家


#!/bin/bash

# Comment out the 3 lines below to produce all in one stacked image 
for FILE in ar-agn--DensT*.dat; do
gnuplot -p << EOF
set output "${FILE}.png"

set terminal png

# uncomment line below for all in one merged data
#set output "TEST.png" 

set datafile separator ","


set xlabel "x-units" font ",16"
set ylabel "y-units" font ",16"
set cblabel "y-units" font ",16"

set tics font ", 16"

set xzeroaxis 


#  Temp vs Density

set yr [0.0:8.0]
set xr [-3.0:6.0]

 set xlabel "log (Number density/(cm^{-3}) )"
 set ylabel "log (Temperature/ K )"

set cbrange [0.099949:10.2948]

set cblabel "Time (Myr)"

set palette  defined ( \
    0 '#0c0887' ,\
    1 '#4b03a1'   ,\
    2 '#7d03a8'   ,\
    3 '#a82296'    ,\
    4 '#cb4679'     ,\
    5 '#e56b5d'   ,\
    6 '#f89441'  ,\
    7 '#fdc328' ,\
    8 '#f0f921'  )

#  Series of subsequnt plots
plot  "${FILE}" u 1:2:3 with points pointtype 5 ps 0.3 palette notitle

# Test.png - One merged data
#filename(n) = sprintf("ar-agn--DensT-%03.0f.dat", n)
#plot for [i=1:103] filename(i) using 1:2:3 with points pointtype 5 ps 0.3 palette notitle


EOF

# insert comment into line below for all in one merged data
done


#!/bin/bash
#注释掉下面的3行,以生成一个堆叠图像
对于ar agn中的文件--DensT*.dat;做

gnuplot-p你非常接近。需要两次迭代,一次在plot命令内部,一次在外部:

filename(n) = sprintf("ar-agn--DensT-%03.0f.dat", n)
outfile(n) = sprintf("ar-agn--DensT-%03.0f.png", n)

do for [N=1:103] {
    set output outfile(N) 
    plot for [i=1:N] filename(i) using 1:2:3 with points pointtype 5 ps 0.3 palette notitle
}

“叠在一起”是指叠在同一个正方形上,就好像你在彼此上面贴了3张透明贴纸一样?或者你的意思是在三维视图中绘制,使其看起来像是通过实心立方体的三个切片?还有别的吗?你能提供一个手绘草图或一个类似图像的链接,让我们知道你想要它看起来是什么样子吗?嗨,伊桑,我的意思是叠加在同一个正方形上。到目前为止,我得到了一个图像数组“001.png”,“002.png”等,或者一个图像数组将整个图像数组叠加在一个正方形“001+002+…103.png”上。我需要的是一个叠加图像数组,即'image 001.png'后接'image 001+002.png',后接'image 001+002+003.png'等等,我还是不明白。你想要一个输出文件,还是三个输出文件,或者一个带有三帧动画的输出文件,或者除了在屏幕上顺序显示之外根本没有输出文件,或者什么?@Ethan,对不起,我想要的是一个103个输出文件的数组,每个连续的文件以以下顺序表示堆叠的数据:file001.png=data001.dat;file002.png=data001.dat+data002.dat;file003.png=data001.dat+data002.dat+data003.dat;file004.png=data001.dat+data002.dat+data003.dat+data004.dat等一直到file103.png=data001.dat+data002.dat+data103.dat。到目前为止,我有单独的.png,即data001.png、data002.png、data003png等,或者代码也可以做一个文件,即我想要的序列中的最后一个文件file103.png=data001.dat+…data103.dat。成功了,谢谢你的帮助@Ethan!!!