如何使用set size <x>,<y>
尊重图的x轴的正确排列,在多点模式下为两个或多个图设置不同的高度?以下问题:我有一个热图图和另一个具有相同时间轴的线点图。热图图包含更多信息,应该使用例如画布高度的80%。使用
set multiplot layout 2,1 margins .1,.8,.05,.95 spacing .05
将地块设置得完美,但没有改变高度的可能性;或者至少我没有成功地做到这一点。以下是使用gnuplot demopage中的代码的两个示例:
$map2 << EOD
0 0 5
0 1 4
0 2 3
0 3 1
0 4 0
1 0 2
1 1 2
1 2 0
1 3 0
1 4 1
2 0 0
2 1 0
2 2 0
2 3 1
2 4 0
3 0 0
3 1 0
3 2 0
3 3 2
3 4 3
4 0 0
4 1 1
4 2 2
4 3 4
4 4 3
EOD
set multiplot layout 2,1 margins .1,.8,.05,.95 spacing .05
plot '$map2' using 2:1:3 with image
plot sin(x)*cos(x)**2, tan(x)
unset multiplot
结果:
在绘图命令之前设置明确的size
和origin
并没有任何效果。
在没有margins/spacing
选项的情况下进行绘图,而是为每个绘图设置明确的大小和原点,只能猜测第二个绘图的正确x宽度。在代码中猜测它在.85和.9之间:
$map2 << EOD
0 0 5
0 1 4
0 2 3
0 3 1
0 4 0
1 0 2
1 1 2
1 2 0
1 3 0
1 4 1
2 0 0
2 1 0
2 2 0
2 3 1
2 4 0
3 0 0
3 1 0
3 2 0
3 3 2
3 4 3
4 0 0
4 1 1
4 2 2
4 3 4
4 4 3
EOD
set multiplot layout 2,1
set size 1,.75
set origin 0.025,.25
plot '$map2' using 2:1:3 with image
set size .85,.25 # <---
set origin 0.025,0
plot sin(x)*cos(x)**2, tan(x)
unset multiplot
让我像这样绘制:
我希望我能解释一下我的问题,非常感谢你的帮助!非常感谢!
答案 0 :(得分:0)
如果我理解了您的问题,您只需更改rmargin
和lmargin
:
set size 1,1
set origin 0,0
unset bmargin, unset lmargin, unset tmargin, unset rmargin
set multiplot
set size 1,0.8
set origin 0,0.2
set lmargin at screen 0.1
set tmargin at screen 0.95
set rmargin at screen 0.9
plot 'map2.dat' using 2:1:3 with image
set size 1,0.2
set origin 0,0
set tmargin 0
set lmargin at screen 0.1
set bmargin at screen 0.1
set rmargin at screen 0.9
plot[GPVAL_X_MIN:GPVAL_X_MAX] sin(x)*cos(x)**2, tan(x)
unset multiplot