我有一個簡單的散點圖,我想在其中添加 某些文本字段。另外,我想在他們周圍放一個框架。在R基地的周圍放置一個框架文本字段
這裏是一個玩具例子:
set.seed(1)
x <- rnorm(10)
y <- rnorm(10)
plot(x,y)
text(0,0,'FRAME ME PLEASE')
我有一個簡單的散點圖,我想在其中添加 某些文本字段。另外,我想在他們周圍放一個框架。在R基地的周圍放置一個框架文本字段
這裏是一個玩具例子:
set.seed(1)
x <- rnorm(10)
y <- rnorm(10)
plot(x,y)
text(0,0,'FRAME ME PLEASE')
這是可能的,如果你計算打印單位字符串的寬度和高度動態地做到這一點:
set.seed(1); x <- rnorm(10); y <- rnorm(10); plot(x,y)
txt <- 'FRAME ME PLEASE'
xt <- 0
yt <- 0
text(xt, yt, txt)
sw <- strwidth(txt)
sh <- strheight(txt)
frsz <- 0.05
rect(
xt - sw/2 - frsz,
yt - sh/2 - frsz,
xt + sw/2 + frsz,
yt + sh/2 + frsz
)
值得一提的是,這也可以處理CEX和字體的變化在寬度和高度計算階段,如果指定。
rect(-0.4,-0.1, 0.4,0.1, border=1)
應該做的伎倆,但我只是砍死四處找位置。如果您使用動態生成的文本製作圖形,則可能必須更加努力地定位矩形。
這是另一個選項,使legend
做的工作。
legend(0, 0, "FRAME ME PLEASE",
xjust = 0.5, # 0.5 means center adjusted
yjust = 0.5, # 0.5 means center adjusted
x.intersp = -0.5, # adjust character interspacing as you like to effect box width
y.intersp = 0.1, # adjust character interspacing to effect box height
adj = c(0, 0.5)) # adjust string position (default values used here)
# cex = 1.5, # change cex if you like (not used here)
# text.font = 2) # bold the text if you like (not used here)
聰明 - 我試着用'legend'碴,但不能讓它爲我工作。 – thelatemail