如何使用多色图为不同的图设置不同的高度

时间:2017-03-30 20:23:57

标签: gnuplot

如何使用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

结果:

enter image description here

在绘图命令之前设置明确的sizeorigin并没有任何效果。

在没有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

让我像这样绘制:

enter image description here

我希望我能解释一下我的问题,非常感谢你的帮助!非常感谢!

1 个答案:

答案 0 :(得分:0)

如果我理解了您的问题,您只需更改rmarginlmargin

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