在R基础图中的文本字段周围放置一个框架

时间:2016-12-07 01:07:44

标签: r

我有一个简单的散点图,我想添加 一些文本字段。另外,我想在它们周围放一个框架。

这是一个玩具示例:

set.seed(1)
x <- rnorm(10)
y <- rnorm(10)

plot(x,y)

text(0,0,'FRAME ME PLEASE')

3 个答案:

答案 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
)

enter image description here

值得注意的是,如果指定,这还可以处理宽度和高度计算阶段中的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)

enter image description here

答案 2 :(得分:1)

rect(-0.4,-0.1, 0.4,0.1, border=1)应该做的伎俩,但我只是乱砍,找到了位置。如果要使用动态生成的文本制作图形,则可能需要更加努力地定位矩形。