Gnuplot:一个绘图的多点大小和缩放

Gnuplot:一个绘图的多点大小和缩放,gnuplot,histogram,Gnuplot,Histogram,我有一个多重点: 由以下代码生成: set terminal pdf size 15,10 set output "graph.pdf" set key off set multiplot layout 5, 1 scale 1, 1 set style data histograms set style histogram set style fill solid border -1 set boxwidth 0.75 set yrange [0:178] set ytics 50 set

我有一个多重点:

由以下代码生成:

set terminal pdf size 15,10
set output "graph.pdf"
set key off
set multiplot layout 5, 1 scale 1, 1
set style data histograms
set style histogram
set style fill solid border -1
set boxwidth 0.75
set yrange [0:178]
set ytics 50
set xtics offset 0,graph 0.01
set xtics font ",20"
set x2tics font ",20"
set ytics font ",20"
set tmargin 3
set bmargin 3
set style line 1 linetype -1 linewidth 3
set grid mxtics
set xtics (0.5 1,1.5 1,2.5 1,3.5 1,4.5 1,5.5 1,6.5 1,7.5 1,8.5 1,9.5 1,10.5 1,11.5 1,12.5 1,13.5 1,14.5 1,15.5 1,16.5 1,17.5 1,18.5 1,19.5 1,20.5 1,21.5 1,22.5 1,23.5 1,24.5 1,25.5 1,26.5 1,27.5 1,28.5 1,29.5 1,30.5 1 )
set tics out

plot 'outil1' every ::0::30 u 7:xtic(2) notitle lt rgb "blue" fillstyle pattern 2, 'ppm' every ::0::30 u 7 notitle lt rgb "red" fillstyle pattern 2, \
newhistogram at 0, 'outil1' every ::0::30 u 6:x2tic(1) notitle lt rgb "blue", 'ppm' every ::0::30 u 6 notitle lt rgb "red"
plot 'outil1' every ::30::60 u 7:xtic(2) notitle lt rgb "blue" fillstyle pattern 2, 'ppm' every ::30::60 u 7 notitle lt rgb "red" fillstyle pattern 2, \
newhistogram at 0, 'outil1' every ::30::60 u 6:x2tic(1) notitle lt rgb "blue", 'ppm' every ::30::60 u 6 notitle lt rgb "red"
plot 'outil1' every ::60::90 u 7:xtic(2) notitle lt rgb "blue" fillstyle pattern 2, 'ppm' every ::60::90 u 7 notitle lt rgb "red" fillstyle pattern 2, \
newhistogram at 0, 'outil1' every ::60::90 u 6:x2tic(1) notitle lt rgb "blue", 'ppm' every ::60::90 u 6 notitle lt rgb "red"
plot 'outil1' every ::90::120 u 7:xtic(2) notitle lt rgb "blue" fillstyle pattern 2, 'ppm' every ::90::120 u 7 notitle lt rgb "red" fillstyle pattern 2, \
newhistogram at 0, 'outil1' every ::90::120 u 6:x2tic(1) notitle lt rgb "blue", 'ppm' every ::90::120 u 6 notitle lt rgb "red"
plot 'outil1' every ::120::150 u 7:xtic(2) notitle lt rgb "blue" fillstyle pattern 2, 'ppm' every ::120::150 u 7 notitle lt rgb "red" fillstyle pattern 2, \
newhistogram at 0, 'outil1' every ::120::150 u 6:x2tic(1) notitle lt rgb "blue", 'ppm' every ::120::150 u 6 notitle lt rgb "red"
要生成所需的绘图,请执行以下操作:

我的问题是,最后一个图的大小与前4个图的大小不相等。在最后一个绘图中,tics之间的距离更大,以使其适合整个画布

有没有办法使最后一个图与另一个图对齐?例如,让126个tic与第4个图中的96个tic对齐


谢谢。

绘制完四个图表后,您可以将左边距固定为此时的值,并根据从图表四到图表五的不同比例调整右边距

您可以在屏幕坐标中计算左侧边距(即在[0:1]范围内,0表示最左侧的画布边缘,1表示最右侧的画布边缘),如下所示:

LMARGIN = GPVAL_TERM_SCALE * (0.0 + GPVAL_TERM_XMIN)/GPVAL_TERM_XSIZE
if (exists('GPVAL_TERM_SCALE')) SCALE = GPVAL_TERM_SCALE; else SCALE = 20
LMARGIN = SCALE * (0.0 + GPVAL_TERM_XMIN)/GPVAL_TERM_XSIZE
RMARGIN = SCALE * (0.0 + GPVAL_TERM_XMAX)/GPVAL_TERM_XSIZE

set lmargin screen LMARGIN
set rmargin screen LMARGIN + (17.0/32.0)*(RMARGIN - LMARGIN)

plot 'outil1' every ::120::150 u 7:xtic(2) notitle lt rgb "blue" fillstyle pattern 2, 'ppm' every ::120::150 u 7 notitle lt rgb "red" fillstyle pattern 2, \
newhistogram at 0, 'outil1' every ::120::150 u 6:x2tic(1) notitle lt rgb "blue", 'ppm' every ::120::150 u 6 notitle lt rgb "red"
这里,
GPVAL\u TERM\u SCALE
是一个系数,它仅在gnuplot 5中可用,但需要独立于所使用的终端进行正确的计算。当使用gnuplot4.6时。以及
pdfcairo
终端,该值为
20
。您可以在脚本中放入一个小if子句来检查:

if (exists('GPVAL_TERM_SCALE')) SCALE = GPVAL_TERM_SCALE; else SCALE = 20
因此,脚本中的最后一个
plot
命令应如下所示:

LMARGIN = GPVAL_TERM_SCALE * (0.0 + GPVAL_TERM_XMIN)/GPVAL_TERM_XSIZE
if (exists('GPVAL_TERM_SCALE')) SCALE = GPVAL_TERM_SCALE; else SCALE = 20
LMARGIN = SCALE * (0.0 + GPVAL_TERM_XMIN)/GPVAL_TERM_XSIZE
RMARGIN = SCALE * (0.0 + GPVAL_TERM_XMAX)/GPVAL_TERM_XSIZE

set lmargin screen LMARGIN
set rmargin screen LMARGIN + (17.0/32.0)*(RMARGIN - LMARGIN)

plot 'outil1' every ::120::150 u 7:xtic(2) notitle lt rgb "blue" fillstyle pattern 2, 'ppm' every ::120::150 u 7 notitle lt rgb "red" fillstyle pattern 2, \
newhistogram at 0, 'outil1' every ::120::150 u 6:x2tic(1) notitle lt rgb "blue", 'ppm' every ::120::150 u 6 notitle lt rgb "red"
通过手动计算要绘制的范围,我得到了系数
(17.0/32.0)
。结果是


非常感谢,这正是我想要的。你在我的两个问题上帮了我很多:D