我相信这对R社区来说并不新鲜,但对我来说并不陌生,无法找到明确的答案。 假设这个例子:
plot(1:10, xlab="", xaxt="n") # supress OX axis
title(xlab="How can I use cm?", line=2.5)
axis(side=1, at=1:10, line=0.2)
在这里,我使用函数line
中的 title()
参数将标签放置在2,5行文本"从图边缘向外#34; (如?title
帮助中所述)。是否有任何争论可以采取cm,或使用cm的方法?另外,如何找出一行文字包含多少厘米(如果没有其他方法)?
知道/设置 cm 中的边距也不错,而不仅仅是par("mar")
[文字行]或par("mai")
[英寸]。有没有办法做到这一点?
答案 0 :(得分:1)
使用this answer中的line2user
功能,您可以将厘米转换为“线”,然后将线转换为用户坐标,并使用xpd = TRUE
将内容添加到绘图中:
cm2line <- function(x) {
lh <- par('cin')[2] * par('cex') * par('lheight')
inch <- x/2.54
inch/lh
}
par(mai = rep(5/2.54, 4))
plot.new()
box()
mtext("hello", side = 3, line = cm2line(2))
abline(h = line2user(cm2line(1:5), side = 4), xpd = TRUE)
abline(h = line2user(cm2line(1:5), side = 1), xpd = TRUE)
abline(v = line2user(cm2line(1:5), side = 2), xpd = TRUE)
abline(v = line2user(cm2line(1:5), side = 3), xpd = TRUE)