问题描述
set offsets的gnuplot文档非常简洁,我无法找到偏移量如何与多个x轴或y轴相互作用。
我有2个图,它们使用x1y1和x1y2,所以左边有2个y轴,右边是1个。现在,当我添加一些顶部偏移量时,它将应用于使用y1的图。如何使其影响使用y2的图?
解决方法
这就是gnuplot help offsets
所说的:
偏移量提供了一种在数据周围放置空白边界的机制 在自动缩放的图形中。偏移量仅影响x1和y1 轴,并且仅在2D绘图命令中使用。
因此,看起来(不可能)不可能。 顺便说一句,您是否希望补偿影响...
- 仅y2轴或
- y1和y2轴以相同方式或
- y1和y2轴不同吗?
也许您可以编辑问题并添加示例以供说明。
添加:
以下内容可能会有所帮助。正如您已经做过的那样,您可以使用GPVAL_
变量。
重要的是要知道,这些值仅在 绘制后设置。
因此,您必须先绘制,然后根据需要修改y1和y2范围,然后修改replot
。您还可以使用gnuplot的自动缩放算法建议将变量GPVAL_Y_MIN
,GPVAL_Y_MAX
,GPVAL_Y2_MIN
和GPVAL_Y2_MAX
作为范围。
代码:
### different "offsets" for y1 and y2 axes
reset session
set xlabel "x1-axis"
set ylabel "y1-axis"
set ytics nomirror
set y2label "y2-axis"
set y2tics nomirror
plot 100*(sin(x)+1) axes x1y1 w l,\
10*cos(x) axes x1y2 w l
Y1FromBottom = 0.40 # y1 data will use 40% space from bottom
Y2FromBottom = 0.80 # y2 data will use 80% space from bottom
set yrange[:(GPVAL_DATA_Y_MAX-GPVAL_DATA_Y_MIN)/Y1FromBottom+GPVAL_DATA_Y_MIN]
set y2range[:(GPVAL_DATA_Y2_MAX-GPVAL_DATA_Y2_MIN)/Y2FromBottom+GPVAL_DATA_Y2_MIN]
replot
### end of code
结果: