我有三个数据系列,包括:
所有三个数据系列共享相同的X坐标,但每个其他组件与其他数据系列不同。通过对我的三个数据系列(R中的库ggpplot2)中的每一个使用一个geom_point(),我想根据具体的S
绘制每个数据系列的颜色标度,如下所示:
ggplot(data, aes(x=X)) + geom_point(aes(y=Y, colour=S, shape=Class))
如果我只使用一个数据系列,则此方法有效。问题是,如果我使用自己的geom_points()
和Y
定义了三个S
,它们都具有相同的色阶,这在图上有点令人困惑。
由于我已经在使用形状来区分Class
es,我真的很喜欢为我的每个数据系列都有自己的颜色渐变的特定颜色。
让我们举例说:
如果有人在使用或不使用ggplot2的情况下已经找到了这种情节,我将非常感谢他或她的解决方案。
答案 0 :(得分:1)
在ggplot
中,您实际上只能使用alpha
来表达您的要求。我已经编制了一些数据:
df1 <- data.frame(X=rnorm(16), Y=rnorm(16), S=rep(1:4,times=4), Class=rep(LETTERS[1:4], each=4))
df2 <- data.frame(X=rnorm(16), Y=rnorm(16), S=rep(1:4,times=4), Class=rep(LETTERS[1:4], each=4))
df3 <- data.frame(X=rnorm(16), Y=rnorm(16), S=rep(1:4,times=4), Class=rep(LETTERS[1:4], each=4))
ggplot(df1, aes(x)) + geom_point(aes(y=Y, colour=S, shape=Class))
df1$id <- 1
df2$id <- 2
df3$id <- 3
df.list <- list(df1, df2, df3)
df.all <- ldply(df.list, rbind)
ggplot(df.all, aes(X, Y)) + geom_point(aes(colour=as.factor(id), shape=Class, alpha=S))
不确定这是否符合您的要求......