我正在尝试使用ggplot2来创建和标记散点图。我正在绘制的变量都被缩放,使得水平轴和垂直轴以标准偏差(1,2,3,4,...平均值)为单位绘制。我希望能够做的只是标记那些超出平均值标准偏差的元素。理想情况下,此标签将基于另一列数据。
有办法做到这一点吗?
我查看了在线手册,但是我无法找到有关为绘图数据定义标签的任何信息。
感谢帮助!
谢谢!
BEB
答案 0 :(得分:17)
使用子集:
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)
答案 1 :(得分: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)
答案 2 :(得分: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)
使用qplot:
qplot(a, b, data = x, label = lab, geom = c('point','text'))