![](/img/trans.png)
[英]Space between axis title and tick labels in persp plot in R (using vis.gam from mgcv package)
[英]R universal distance between plot limits and axis labels/title
在 R 绘图环境中,有没有办法指定轴标签和轴名称相对于绘图边界的位置之间的通用距离? 例如,考虑以下测试图的 Y 轴:
pdf('test1.pdf',height=3.5,width=5.0)
plot(1,ylab=NA,yaxt='n',ann=F)
mtext('Y-Axis Label',side=2,line=1.5)
axis(2, pos=0.595,tick=F)
dev.off()
我已经分别在mtext
和axis
函数中使用line=1.5
和pos=0.595
参数优化了轴标签和轴名称的位置。 但是,一旦我生成了一个具有不同宽度的单独绘图(即width=8.0
),位置就不再类似于我在原始图中使用宽度 5.0 指定的物理距离。 所以问题是 - 我如何指定这些参数,以便标签和名称与图形边界的距离完全相同,而不管绘图宽度如何。 这可以使用通用单位(即像素)指定吗?
提前致谢!
尝试grconvertX
但您必须跟踪您需要输出的方式。 mtext(..., line = )
中,而axis(..., pos = )
需要用户坐标。 此外,您还需要在适当的情况下使用grconvertY
(即,在第 1 和第 3 侧)
pdf('test1.pdf',height=3.5,width=5.0)
plot(1,ylab=NA,yaxt='n',ann=F)
mtext('Y-Axis Label',side=2,line=1.5)
axis(2, pos=0.595,tick=F)
line <- grconvertX(1.5, 'lines', 'device')
pos <- grconvertX(0.595, 'user', 'device')
dev.off()
pdf('test1-again.pdf',height=3.5,width=5)
plot(1,ylab=NA,yaxt='n',ann=F)
mtext('Y-Axis Label',side=2, line = grconvertX(line, 'device', 'lines'))
axis(2, pos = grconvertX(pos, 'device', 'user'), tick = FALSE)
dev.off()
pdf('test1-wide.pdf',height=3.5,width=8)
plot(1,ylab=NA,yaxt='n',ann=F)
mtext('Y-Axis Label',side=2, line = grconvertX(line, 'device', 'lines'))
axis(2, pos = grconvertX(pos, 'device', 'user'), tick = FALSE)
dev.off()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.