我试图在gnuplot中以垂直堆叠的模式绘制5个图形。有许多水平(x轴共享)图形。我试图调整他们的解决方案。但不知何故不起作用。这是代码。
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 :(得分:0)
Gnuplot空间不足。您需要修复set size
和set origin
命令,以便不在绘图区域之外绘图。现在,您的SX=0.25
表示每个子图的水平尺寸占可用空间的25%,因此只有4个子图可以适合此设置。然后需要将第五个子图放置在绘图区域之外。
另请注意,通过设置原点和尺寸,您将覆盖已定义的multiplot layout
。
通常,在进行这种绘图风格时,最好定义边距而不是尺寸和原点。