在ggplot2中的美学映射中将颜色与组分离

时间:2014-03-20 02:50:10

标签: r ggplot2

我想为最高点着色

data <- data.frame(x=rnorm(100))
data$a <- ifelse(data$x>quantile(data$x,.90),"1","2")

但是,除了添加颜色外,设置颜色审美与分组完全相同。

ggplot(data,aes(x=x,colour=a))+
  geom_point(stat="ecdf")

ggplot(data,aes(x=x,group=a))+
  geom_point(stat="ecdf")

有没有一种方法可以为点设置颜色审美,而无需将数据分组以进行单独计算?

1 个答案:

答案 0 :(得分:1)

或许可以单独计算经验CDF并绘制其中的点。

# reproducible!
set.seed(1492)

data <- data.frame(x=rnorm(100))

# explicitly make the y vals
fx <- ecdf(data$x)
data$y <- fx(data$x)

# point colors
data$a <- ifelse(data$x > quantile(data$x, 0.90), "1", "2")

# take a peek
head(data)
##            x    y a
## 1 -0.5898476 0.31 2
## 2 -0.8986574 0.22 2
## 3 -1.6241110 0.06 2
## 4  1.0479216 0.85 2
## 5 -0.2782887 0.38 2
## 6  0.3624930 0.63 2

gg <- ggplot(data, aes(x=x, y=y, colour=a))
gg <- gg + geom_point()
gg <- gg + theme_bw()
gg

plot