2009-11-29 160 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'))