2009-11-29 190 views
11

我正在嘗試使用ggplot2來創建和標記scatterplot。我繪製的變量都被縮放,以便水平軸和垂直軸以標準偏差(1,2,3,4,......與平均值)爲單位繪製。我希望能夠做的是僅標註那些超過平均值的標準偏差的特定限制的元素。理想情況下,此標籤將基於另一列數據。ggplot2散點圖標籤

有沒有辦法做到這一點?

我已經瀏覽了在線手冊,但是我一直無法找到任何關於爲繪圖數據定義標籤的信息。

幫助表示讚賞!

謝謝!

BEB

回答

15

使用子集:

library(ggplot2) 
x <- data.frame(a=1:10, b=rnorm(10)) 
x$lab <- letters[1:10] 
ggplot(data=x, aes(a, b, label=lab)) + 
    geom_point() + 
    geom_text(data = subset(x, abs(b) > 0.2), vjust=0) 
4

的標籤可以通過以下方式進行:

library("ggplot2") 
x <- data.frame(a=1:10, b=rnorm(10)) 
x$lab <- rep("", 10) # create empty labels 
x$lab[c(1,3,4,5)] <- LETTERS[1:4] # some labels 
ggplot(data=x, aes(x=a, y=b, label=lab)) + geom_point() + geom_text(vjust=0) 
1

子集的ggplot功能之外:

library(ggplot2) 
set.seed(1) 
x <- data.frame(a = 1:10, b = rnorm(10)) 
x$lab <- letters[1:10] 
x$lab[!(abs(x$b) > 0.5)] <- NA 
ggplot(data = x, aes(a, b, label = lab)) + 
    geom_point() + 
    geom_text(vjust = 0) 

使用q繪圖:

qplot(a, b, data = x, label = lab, geom = c('point','text'))