我有一个简单的散点图,我想添加 一些文本字段。另外,我想在它们周围放一个框架。
这是一个玩具示例:
set.seed(1)
x <- rnorm(10)
y <- rnorm(10)
plot(x,y)
text(0,0,'FRAME ME PLEASE')
答案 0 :(得分:4)
如果您在绘图单位中计算字符串的宽度和高度,则可以动态执行此操作:
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和字体更改。
答案 1 :(得分:3)
这是让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)
答案 2 :(得分:1)
rect(-0.4,-0.1, 0.4,0.1, border=1)
应该做的伎俩,但我只是乱砍,找到了位置。如果要使用动态生成的文本制作图形,则可能需要更加努力地定位矩形。