多色 - 在更大的画布上堆叠3个图形

San*_*man 9 gnuplot

我一直在尝试将3个图形叠加在画布上的多图布局中,并且比例为2:3(宽高比).

set terminal postscript eps enhanced "Helvetica" 24 color
set output "data.eps"
set timefmt "%s"

#set size 1.0,1.5
#set bmargin 2
#set tmargin 2

set size 1.0,1.5
set multiplot layout 3,1
set size 1.0,0.5

set tmargin 2
set bmargin 0
set ylabel 'Distance'
set format x ""
set ytics nomirror font "Helvetica,10"
set key top
plot "trace1.dat" using 1:3 axes x1y1 title "distances" with lines lw 2 lc rgb 'blue'

set size 1.0,0.5
set bmargin 0
set tmargin 0
set ylabel 'Power (W)'
set format x ""
set ytics nomirror font "Helvetica,10"
set key top
plot "trace2.dat" using 1:2 axes x1y1 title "device" with lines lw 2 lc rgb 'red'

set size 1.0,0.5
set bmargin
set tmargin 0 
set xdata time
set ylabel 'Power (W)'
set xlabel 'Time (EST)' offset 0,-2.8 font "Helvetica,32
set format x "%b %d, %H:%M"
set ytics nomirror font "Helvetica,10"
set xtics nomirror rotate by 90 offset 0,-2.0 out font "Helvetica,10"
set key top
plot "trace3.dat" using 1:2 axes x1y1 title "aggr" with lines lw 2 lc rgb 'blue'

unset multiplot
Run Code Online (Sandbox Code Playgroud)

当我做上面这样的事情时,我得到如下所示的图,画布顶部有很多空白区域,3个多图图形似乎彼此重叠.

PLT

任何形式的帮助或指针将不胜感激.

Chr*_*oph 16

要使用更大的画布,您必须size在设置终端时使用该选项,例如:

set terminal postscript eps enhanced size 10cm,15cm
Run Code Online (Sandbox Code Playgroud)

set size只是改变相对于画布的绘图大小.要看到这一点,请考虑

set terminal wxt
set size 1.0,1.5
plot sin(x)
Run Code Online (Sandbox Code Playgroud)

情节的一部分消失了,因为它相对于画布来说太高了.

要堆叠三个具有相同高度的图,在我看来最好使用固定边距:

set terminal pngcairo size 600, 900
set output 'stacking.png'

set lmargin at screen 0.15
set rmargin at screen 0.95

TOP=0.98
DY = 0.29

set multiplot
set offset 0,0,graph 0.05, graph 0.05

set xlabel 'time'
set ylabel 'ylabel 1' offset 1
set tmargin at screen TOP-2*DY
set bmargin at screen TOP-3*DY
set ytics -1000,500,1000
plot 1150*cos(x) title 'First'

set xtics format ''
unset xlabel
set ylabel 'ylabel 2' offset 0
set tmargin at screen TOP-DY
set bmargin at screen TOP-2*DY
set ytics -100,50,100
plot 101*sin(x) title 'Second'

set ylabel 'ylabel 3' offset -1
set tmargin at screen TOP
set bmargin at screen TOP-DY
set ytics -8,4,8
plot 10*sin(2*x) title 'Third'

unset multiplot; set output
Run Code Online (Sandbox Code Playgroud)

结果是(4.6.3):

在此输入图像描述

为了避免的标签重叠的问题ytics,你必须改变在抽动绘制的范围,例如用set ytics -100,50,100这使之间ytics,-100100在步骤50.使用set ytics rangelimited不起作用

为了增加情节曲线和边框之间的距离,使用set offsetgraph坐标,如上面的脚本来完成.

我从最低的情节开始,因为只有那个有x标签和一个xlabel.


zti*_*tik 5

你也需要使用set origin.

set terminal postscript eps enhanced
set output "data.eps"

set size 1.0,1.5
set multiplot layout 3,1

set size 1.0,0.5
set origin 0,1
...
plot ...

set size 1.0,0.5
set origin 0,0.5
...
plot ...

set size 1.0,0.5
set origin 0,0
...
plot ...

unset multiplot
Run Code Online (Sandbox Code Playgroud)