如果它们在字符向量中,则为颜色点

时间:2016-04-29 10:49:43

标签: r ggplot2

我们说我有这个数据框:

fun <- data.frame(object = (c("banana", "pasta", "apple", "worm"), 
                  value1 = c(1,2,3,5), 
                  value2 = c(4,3,3,1))

然后我可以使用ggplot

绘制value1与value2的关系
ggplot(fun, aes(y = value2, x = value1)) +
  geom_point()

但我也有一个单独的矢量:

fruits <- c("lemon", "apple", "orange", "banana")

如何根据fun$object是否在fruits向量中使用此向量为绘图点着色,这样我可以得到一个水果和非水果对象颜色不同的情节?

我对一个相当有效的解决方案感兴趣,因为我的数据非常大。

1 个答案:

答案 0 :(得分:4)

fun <- data.frame(cbind(c("banana", "pasta", "apple", "worm"), 
                        c(1,2,3,5), c(4,3,3,1)))

colnames(fun) <- c("object", "value1", "value2")

fruits <- c("lemon", "apple", "orange", "banana")

fun$col <- fun$object %in% fruits

ggplot(fun, aes(y = value2, x = value1)) +
  geom_point(aes(color=col))