在gnuplot中绘制两个二维图,一个在另一个上

在gnuplot中绘制两个二维图,一个在另一个上,gnuplot,Gnuplot,我想为每个绘图使用两个不同的调色板绘制两个二维绘图,一个在另一个的顶部(我的总体目标是用这些图片制作两个分布的动画)。我写了下面的代码片段,基本上是两个面板,每个面板上都有multiplot CMD = "rm -f *.png && echo 'Initializing...'" system(CMD) set terminal pngcairo PATH = '../RUNS/ZRU_0016/' i = 900 mincb = -16 maxcb = 0 set cbran

我想为每个绘图使用两个不同的调色板绘制两个二维绘图,一个在另一个的顶部(我的总体目标是用这些图片制作两个分布的动画)。我写了下面的代码片段,基本上是两个面板,每个面板上都有
multiplot

CMD = "rm -f *.png && echo 'Initializing...'"
system(CMD)
set terminal pngcairo
PATH = '../RUNS/ZRU_0016/'
i = 900
mincb = -16
maxcb = 0
set cbrange[mincb:maxcb]
set xrange[0:201]
set yrange[0:201]
unset key
set ylabel "j"
set xlabel "i"
# This functions gives the name of the snapshot file
snapshot(i) = sprintf("snapshot_%04d.dat", i)
#-------------------------------------------------------------
    set margins screen 0.1, screen 0.85, screen 0.1, screen 0.9
    set output sprintf('%07d.png', i)
    set yrange[0:201]
    set multiplot 
    mincb = -12
    maxcb = 0
    set cbrange[mincb:maxcb]
    load 'jet.pal'
    plot PATH.'snapshots/'.snapshot(i) using 1:2:(log10($4)>mincb?(log10($4)):mincb) with lines palette lw 3, \
         PATH.'data_main_ddnls_twod_mlce.dat' u 10:11 every ::i::i  w p pt 7 lc 'black' notitle 

    mincb = -8
    maxcb = 0
    set cbrange[mincb:maxcb]
    load 'greys.pal'
    plot PATH.'snapshots/'.snapshot(i) using 1:2:(log10($5)>mincb?(log10($5)):mincb) with lines palette lw 3, \
         PATH.'data_main_ddnls_twod_mlce.dat' u 12:13 every ::i::i  w p pt 7 lc 'black' notitle 
    unset multiplot 
我得到的结果如下所示

正如您所看到的,加载了
jet.pal
(matlab默认颜色方案)的第一个发行版应该看起来很亮,但似乎被第二个发行版用浅灰色遮住了(不用担心颜色条)


如何在绘图上正确显示这两种分布?

您能否澄清数据文件的格式?由于热图通常在pm3d模式下绘制,或者使用“带图像”进行绘制,因此您正在绘制“带线”是不可预料的。在这两种模式中,您都可以使用命令为组成像素指定部分透明度

set style fill transparent solid 0.5 noborder

这将允许第一个绘制的绘图显示在第二个绘图中。

我使用的线的
上的好点,这是一个旧项目的遗迹,它工作正常。我更新了新的提议。看起来好多了。