1

我有三个数据系列,它们由以下组成:

  • X(浮动)
  • Y(浮点数)
  • S(浮动)
  • 类(离散值)

所有三个数据系列共享相同的 X 坐标,但每个其他组件都与其他数据系列不同。通过为我的三个数据系列(R 中的库 ggpplot2)中的每一个使用一个 geom_point(),我想根据具体的颜色标度绘制每个数据系列,S如下所示:

ggplot(data, aes(x=X)) + geom_point(aes(y=Y, colour=S, shape=Class)) 

如果我只使用一个数据系列,这将有效。问题是,如果我使用它们自己的和定义三个geom_points()指定的值,它们都具有相同的色标,这在情节上有点令人困惑。YS

因为我已经在使用形状来区分Classes,所以我真的很喜欢为我的每个数据系列使用具有自己颜色渐变的特定颜色。

比如说:

  • 数据系列 1 从深蓝色到浅蓝色
  • 数据系列 2 从深红色到浅红色
  • 数据系列 3 从深黄色到浅黄色

我环顾四周,但没有找到任何满足我需求的东西。一些评论说使用 ggplot2 每个图不可能有超过一个色标......是真的吗?

如果有人已经想出这种有或没有 ggplot2 的情节,我将不胜感激他或她的解决方案。

4

1 回答 1

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))

不知道这是否符合您的要求...

于 2013-03-05T01:24:13.997 回答