[英]R: Positioning graph elements using cm units with generic X-Y Plotting functions
我確信這對於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)
在這里,我在函數title()
使用了line
參數,以在“從繪圖邊緣向外”的2.5行文本處放置標簽(如?title
幫助中所述)。 是否有任何可以占用cm的參數,或者使用cm的方法? 另外,如何確定一行文本包含多少厘米(如果沒有其他方法)?
知道/設置以cm為單位的邊距,不僅會像par("mar")
[文本行]或par("mai")
[inches]一樣,也很棒。 有沒有辦法做到這一點?
使用此答案中的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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.