GNUPLOT:GPVAL_Y_MIN和GPVAL_Y_MAX在多点环境中

GNUPLOT:GPVAL_Y_MIN和GPVAL_Y_MAX在多点环境中,plot,gnuplot,axis-labels,Plot,Gnuplot,Axis Labels,这是我的第一个问题,让我有点紧张。我来了 我想要实现的是在一个多点2x2(可能更多)中绘制四个不同的数据文件。到目前为止,我成功地绘制了这个图,忽略了每个图上y轴的不同范围,但是,x轴对于所有子图都是同质的 因此,我想为每个y轴设置10个ytics,其中包含一些小tics,并且扩展到x轴。我相信这是通过GPVAL_X或GPVAL_DATA_X和GPVAL_Y或GPVAL_DATA_Y_MIN/_MAX实现的。到目前为止,效果良好 然而,这并没有达到我的目标: 在面板A上,y轴被正确划分为10段,

这是我的第一个问题,让我有点紧张。我来了

我想要实现的是在一个多点2x2(可能更多)中绘制四个不同的数据文件。到目前为止,我成功地绘制了这个图,忽略了每个图上y轴的不同范围,但是,x轴对于所有子图都是同质的

因此,我想为每个y轴设置10个ytics,其中包含一些小tics,并且扩展到x轴。我相信这是通过GPVAL_X或GPVAL_DATA_X和GPVAL_Y或GPVAL_DATA_Y_MIN/_MAX实现的。到目前为止,效果良好

然而,这并没有达到我的目标:

在面板A上,y轴被正确划分为10段,而x轴则不是。 面板B正确显示两个轴。 面板C正确显示x轴,而y轴编号。 面板D与C相似,但在y轴上,TIC看起来杂乱无章

这就提出了以下问题:

1如何使用GPVAL或GPVAL_数据正确生成此多点打印

2如果指定为“其他”,为什么打印的函数显示在相应标签的前面

此图由以下代码生成:

reset
# Term
GNUTERM = "x11"
## Output
set t epslatex standalone color solid size 20in,12in font "ptm, 20"
set o "test.tex"
# Axes & Labels
set style line 11 lc rgb '#2F4F4F' lt 1
set border 3 back ls 11
set tics nomirror out
set format y "\\tiny $%2.2t \\cdot 10^{%S}$"
set format x "\\tiny $%1.1t$"
set xlabel "$\\rho$"
unset ylabel
unset key
# Grid
set style line 12 lc rgb'#2F4F4F' lt 0 lw 1.5
set grid back ls 12
# Border
set border 31 linewidth .75 # thin border
# Multiplot Files
set multiplot layout 2,2 columnsfirst
## UL
## Labels
LABEL = "A) $sin(x)$"
set obj 10 rect fill at graph 0.3, graph 0.75 size char strlen(LABEL), char 2
set label 10 at graph 0.3, graph 0.75 LABEL front center
plot sin(x)
## Tics
set xtics add GPVAL_X_MIN,(GPVAL_X_MAX-GPVAL_X_MIN)/10.,GPVAL_X_MAX
set ytics add GPVAL_Y_MIN,(GPVAL_Y_MAX-GPVAL_Y_MIN)/10.,GPVAL_Y_MAX
set mxtics 5
set mytics 5
## LL
## Labels
LABEL = "B) $cos(x)$"
set obj 10 rect fill at graph 0.3, graph 0.75 size char strlen(LABEL), char 2
set label 10 at graph 0.3, graph 0.75 LABEL front center
plot cos(x)
## Tics
set xtics add GPVAL_X_MIN,(GPVAL_X_MAX-GPVAL_X_MIN)/10.,GPVAL_X_MAX
set ytics add GPVAL_Y_MIN,(GPVAL_Y_MAX-GPVAL_Y_MIN)/10.,GPVAL_Y_MAX
set mxtics 5
set mytics 5
## UR
## Labels
LABEL = "C) $cos(x) sin(x)$"
set obj 10 rect fill at graph 0.3, graph 0.75 size char strlen(LABEL), char 2
set label 10 at graph 0.3, graph 0.75 LABEL front center
plot cos(x)*sin(x)
## Tics
set xtics add GPVAL_X_MIN,(GPVAL_X_MAX-GPVAL_X_MIN)/10.,GPVAL_X_MAX
set ytics add GPVAL_Y_MIN,(GPVAL_Y_MAX-GPVAL_Y_MIN)/10.,GPVAL_Y_MAX
set mxtics 5
set mytics 5
## LR
## Labels
LABEL = "D) $cos(x) / sin(x)$"
set obj 10 rect fill at graph 0.3, graph 0.75 size char strlen(LABEL), char 2
set label 10 at graph 0.3, graph 0.75 LABEL front center
plot cos(x)/sin(x)
## Tics
set xtics add GPVAL_X_MIN,(GPVAL_X_MAX-GPVAL_X_MIN)/10.,GPVAL_X_MAX
set ytics add GPVAL_Y_MIN,(GPVAL_Y_MAX-GPVAL_Y_MIN)/10.,GPVAL_Y_MAX
set mxtics 5
set mytics 5
unset multiplot
# Clean-up
set o
set t x11
reset
exit 0

我认为您弄错了:GPVAL_X_MIN是上一个绘图的最小X值,因此它的值只有在您绘制函数后才可用。这是绝对必要的,一个轴上正好有10次抽搐。通常,您可以使用例如设置ytics 0.2来设置两个y-tics之间的增量0.2。完成后,统计就是答案。非常感谢。考虑到你的解决方案,我将投票结束你的问题,因为还有其他几个候选人。不,这不是同一个问题。我了解到命令stats确实很有用。但这个问题背后的主要思想是理解multiplot如何处理这个问题,因为每个绘图在multiplot命令的两个轴上有时需要不同的tic,因此有必要确保每个绘图都必须调用stats。