2016-03-08 53 views
-1

我想在gnuplot中垂直堆叠模式中绘制5个图形。有许多水平(x轴共享)图。我试图调整他们的解决方案。但不知何故不起作用。这是代码。在gnuplot中垂直堆叠的多插槽

set key bottom center 
NX=5; NY=1 
DX=0.01; DY=0.01; SX=0.25; SY=0.85 
set bmargin DX; set tmargin DX; set lmargin DY; set rmargin DY 
set size SX*NX+DX*4,SY*NY+DY*4 
set multiplot layout 1,5 #title 'Distance from inlet boundary' font #'areal,18' 

#1set title 'sa4(210)' 
set size SX,SY 
set label 1 '50m' at 1.5, 1.5 #font 'areal,15' 
set x2tics (0, 0.01, 0.02) 
set xtics (0, 2, 4) 
set ytics (-15, -10, -5, 0) 
set x2range [-0.001:0.02] 
set xrange [0:4] 
set yrange [-15:0] 
set ylabel 'metre(s) below sea level' 
set key bottom 
set xtics nomirror #smooth bezier w p csplines 
set origin DX,DY; 
plot 'so10.dat' u 2:1 w p pt 7 lc rgb 'red' title 'Salinity' axes x2y1,\ 
     'so10.dat' u 3:1 w p pt 8 lc rgb 'blue' title 'Sediment' axes x1y1 

#2set title 'sa4(210)' 
set size SX,SY 
set label 1 '250m' at 1.5, 1.5 #font 'areal,15' 
set x2tics (0, 0.01, 0.02) 
set xtics (0, 2, 4) 
set x2tics 
set x2range [-0.001:0.02] 
set xrange [0:4] 
unset ylabel 
unset ytics 
set key bottom 
set xtics nomirror #smooth bezier w p csplines 
set origin DX+SX,DY; 
plot 'so50.dat' u 2:1 w p pt 7 lc rgb 'red' title 'Salinity' axes x2y1,\ 
     'so50.dat' u 3:1 w p pt 8 lc rgb 'blue' title 'Sediment' axes x1y1 

#3set title 'sa4(210)' 
set size SX,SY 
set label 1 '750m' at 4.0, 1.5 #font ',15' 
set x2tics (0, 0.01, 0.02) 
set xtics (0, 5, 10) 
set x2tics 
set x2range [-0.001:0.02] 
set xrange [0:10] 
unset ylabel 
set key bottom 
set xtics nomirror #smooth bezier w p csplines 
set origin DX+SX*2,DY; 
plot 'so150.dat' u 2:1 w p pt 7 lc rgb 'red' title 'Salinity' axes x2y1,\ 
     'so150.dat' u 3:1 w p pt 8 lc rgb 'blue' title 'Sediment' axes x1y1 

#4set title 'sa4(210)' 
set size SX,SY 
set label 1 '850m' at 4.0, 1.5 #font ',15' 
set x2tics (0, 0.01, 0.02) 
set xtics (0, 6, 12) 
set x2tics 
set x2range [-0.001:0.02] 
set xrange [0:12] 
unset ylabel 
set key bottom 
set xtics nomirror #smooth bezier w p csplines 
set origin DX+SX*3,DY; 
plot 'so170.dat' u 2:1 w p pt 7 lc rgb 'red' title 'Salinity' axes x2y1,\ 
     'so170.dat' u 3:1 w p pt 8 lc rgb 'blue' title 'Sediment' axes x1y1 

#5set title 'sa4(210)' 
set size SX,SY 
set label 1 '950m' at 4.0, 1.5 #font ',15' 
set x2tics (0, 0.01, 0.02) 
set xtics (0, 5, 10) 
set x2tics 
set x2range [-0.001:0.02] 
set xrange [0:10] 
unset ylabel 
set key bottom 
set xtics nomirror #smooth bezier w p csplines 
set origin DX+SX*4,DY; 
plot 'so190.dat' u 2:1 w p pt 7 lc rgb 'red' title 'Salinity' axes x2y1,\ 
     'so190.dat' u 3:1 w p pt 8 lc rgb 'blue' title 'Sediment' axes x1y1 

unset multiplot 

它给出了一个下面4个图。代码必须生成5个图。 Generated image

原始图像如下。我想删除图形之间的空白区域。 Original image

回答

0

Gnuplot空间不足。您需要修复您的set sizeset origin命令,以便您不在绘图区域外绘图。现在,您的SX=0.25意味着每个子图的水平尺寸占用可用空间的25%,因此只有4个子图可以适合此设置。然后需要将第五个子图放置在绘图区之外。

还要注意,通过设置原点和大小,您将覆盖已定义的multiplot layout

通常,在做这种绘图风格时,定义边距而不是大小和原点可能是一个更好的主意。

+0

谢谢。我知道了。 –