Plot 如何使“设置偏移”应用于特定轴?
的gnuplot文档非常简洁,我无法找到偏移如何与多个x轴或y轴交互Plot 如何使“设置偏移”应用于特定轴?,plot,gnuplot,offset,Plot,Gnuplot,Offset,的gnuplot文档非常简洁,我无法找到偏移如何与多个x轴或y轴交互 我有两个图,它们使用x1y1和x1y2,所以有两个y轴,一个在左边,一个在右边。现在,当我添加一些顶部偏移时,它应用于使用y1的绘图。如何使其影响使用y2的绘图?这就是gnuplot帮助偏移量所说的: 偏移提供了一种在数据周围放置空边界的机制 在自动缩放的图形中。偏移仅影响x1和y1 轴,并且仅在二维打印命令中 所以看起来,这(直接)是不可能的。 顺便问一下,你想 仅y2轴或 y1和y2轴以相同的方式或 y1和y2轴不同
我有两个图,它们使用x1y1和x1y2,所以有两个y轴,一个在左边,一个在右边。现在,当我添加一些顶部偏移时,它应用于使用y1的绘图。如何使其影响使用y2的绘图?这就是gnuplot
帮助偏移量所说的:
偏移提供了一种在数据周围放置空边界的机制
在自动缩放的图形中。偏移仅影响x1和y1
轴,并且仅在二维打印命令中
所以看起来,这(直接)是不可能的。
顺便问一下,你想
- 仅y2轴或
- y1和y2轴以相同的方式或
- y1和y2轴不同
也许你可以编辑你的问题,并添加一个例子进行说明
添加:
### 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
也许下面的内容会有所帮助。正如您已经做的那样,您可以使用GPVAL\u
变量。
重要的是要知道,这些值仅在打印后设置。
因此,您必须绘制,然后根据需要修改y1和y2范围,然后replot
。您还可以使用gnuplot的自动缩放算法建议的变量GPVAL\u Y\u MIN
、GPVAL\u Y\u MAX
、GPVAL\u Y2\u MIN
和GPVAL\u Y2\u 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
结果:
### 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
我希望偏移量对y1和y2产生不同的影响。因此,使用y1的绘图,我希望它自动缩放到垂直空间的底部40%,我通过将topOffset设置为(1-0.4)/0.4*(GPVAL_DATA_Y_MAX-GPVAL_DATA_Y_MIN)。但是,理想情况下,我还想使用y2调整绘图的缩放比例,y2有时会与关键点/图例重叠。但这更像是一个好的选择。@haelix这个加法回答了你的问题吗?它提供了一个解决方法,但我没有在我的特定案例中使用它。我接受答案。