我想设置qplot
中带有矢量的点的alpha值(基于绘制的值)。
library(ggplot2)
dsamp <- diamonds[sample(nrow(diamonds), 1000), ]
alpha = rep(.8,nrow(dsamp)); alpha[dsamp$clarity=="I1"] <- 1
qplot(carat, price, data=dsamp, colour=clarity,size=I(4),alpha=alpha)
当我执行上面的代码时,在创建像这样的alpha矢量时没有区别:
alpha = rep(.1,nrow(dsamp)); alpha[dsamp$clarity=="I1"] <- 1
我希望dsamp$clarity!="I1"
的点与上面的两个代码一样具有更低的透明度。我怎样才能做到这一点?
答案 0 :(得分:2)
我会使用ggplot()
并将alpha
映射到clarity
。然后,您可以手动设置每个因素级别所需的alpha
值。
levels(dsamp$clarity)
[1] "I1" "SI2" "SI1" "VS2" "VS1" "VVS2" "VVS1" "IF"
alpha <- c(1, rep(0.25, times=(length(levels(dsamp$clarity))-1)))
names(alpha) <- levels(dsamp$clarity)
alpha
I1 SI2 SI1 VS2 VS1 VVS2 VVS1 IF
0.5 1.0 1.0 1.0 1.0 1.0 1.0 1.0
然后你可以:
ggplot(dsamp, aes(carat, price)) + geom_point(aes(alpha=clarity, colour=clarity), size=I(4)) +
scale_alpha_manual(values=alpha)
据我所知,给你你想要的东西。显然,您可以在创建I1
时为alpha
设置不同的级别。