3

我有一个似乎是一个非常基本的问题,但我无法解决它,因为我几乎没有使用过 ggplots2 ...我只希望左边的图使用变量 color1 中的颜色,而右边的图使用变量 color2 中的颜色。这是一个 MWE:

library(reshape2)
library(ggplot2)

a.df <- data.frame(
  id=c("a","b","c","d","e","f","g","h"), 
  var1=c(1,2,3,4,5,6,7,8), var2=c(21,22,23,24,25,26,27,28), 
  var3=c(56,57,58,59,60,61,62,63), 
  color1=c(1,2,"NONE","NONE",1,2,2,1), 
  color2=c(1,"NONE",1,1,2,2,"NONE",2)
)

a.dfm <- melt(a.df, measure.vars=c("var2","var3"))

ggplot(a.dfm, aes(x=value, y=var1, color=color1)) + 
  geom_point(shape=1) + 
  facet_grid(. ~ variable)

非常感谢!

4

1 回答 1

4

我认为使用您的数据最简单的方法是创建一个附加列,该列的颜色基于variable. 由于只有两个可能的值variable可以采用,所以这并不难。

a.dfm2 <- transform(a.dfm, 
                    color.use = ifelse(variable=="var2", 
                                       as.character(color1), 
                                       as.character(color2)))

ggplot(a.dfm2, aes(x=value, y=var1, color=color.use)) + 
  geom_point(shape=1) + 
  facet_grid(. ~ variable)

在此处输入图像描述

于 2013-10-03T22:53:27.987 回答