2016-12-07 19 views
1

我有一個簡單的散點圖,我想在其中添加 某些文本字段。另外,我想在他們周圍放一個框架。在R基地的周圍放置一個框架文本字段

這裏是一個玩具例子:

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

plot(x,y) 

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

回答

3

這是可能的,如果你計算打印單位字符串的寬度和高度動態地做到這一點:

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

rect(-0.4,-0.1, 0.4,0.1, border=1)應該做的伎倆,但我只是砍死四處找位置。如果您使用動態生成的文本製作圖形,則可能必須更加努力地定位矩形。

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) 

enter image description here

+0

聰明 - 我試着用'legend'碴,但不能讓它爲我工作。 – thelatemail