在gnuplot中绘制两个二维图,一个在另一个的顶部

时间:2019-01-25 18:33:14

标签: gnuplot

我想在每个图的顶部使用两个不同的调色板绘制两个二维图,一个在另一个图的顶部(我的总体目的是用这些图片制作两个分布的动画)。我写了以下代码段,它们基本上是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 

我得到一个看起来像这样的结果 Plot of two distribution one on the top of the other in gnuplot

如您所见,加载了jet.pal(matlab默认的配色方案)的第一个发行版应该看起来很光亮,但是似乎被第二个发行版所掩盖的浅灰色(不用担心颜色栏)。 >

如何在情节上使两个分布正确?

1 个答案:

答案 0 :(得分:1)

您能否阐明数据文件的格式?出乎意料的是,您正在绘制“带线”图,因为热图通常是在pm3d模式下绘制的,或者使用“带有图像”图。在这两种模式中,您都可以使用以下命令将部分透明度分配给组成像素:

set style fill transparent solid 0.5 noborder

这将允许第一个绘制的图显示通过第二个图。