我有一个看似非常基本的问题,但我无法解决它,因为我几乎没有使用ggplots2 ......我只是想让左边的情节使用变量color1中的颜色和right使用变量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)
非常感谢!
答案 0 :(得分: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)