当您运行此代码时,您将看到带B的方面有一个红色点,但它显然应该是红色的。如何正确设置给定数据框架"d“的颜色?
谢谢。
d = data.frame(x = c(1,2,3),y = c(4,5,6), color = c("red","blue","red"), group = c("A","B","A"))
d
ggplot(data= d, aes(x = x, y = y ) ) +geom_point( color = d$color)+
facet_wrap(~group)发布于 2016-07-14 22:22:14
与base绘图不同,ggplot并不期望您的数据中有一列颜色名称。它希望您有一个列,该列定义要用哪个变量着色,并且可以选择指定该向量的值与自定义颜色之间的映射(如果您不喜欢默认值的话)。
在您的数据中,color列似乎是基于group列的。这将是创建绘图的规范ggplot方法(请注意,没有使用color列):
ggplot(data = d, aes(x = x, y = y, color = group)) +
geom_point() +
facet_wrap(~group)注意,您不需要用同一列对面和颜色进行调整,例如,
ggplot(data = mtcars, aes(x = wt, y = mpg, color = factor(cyl))) +
geom_point() +
facet_wrap(~ am)关键是要将一列映射到aes().内部的aes() 的aes()参数。当涉及到方面时,ggplot可能会在幕后对数据进行复杂的分割。此数据操作基于提供给aes中提供的数据参数和列名的数据。
如果指定data$column,则只传递一个向量。您已经从您的数据框架中获取了它,但是ggplot不知道这一点--它可能来自任何地方。这将导致为方面所做的细分中的错误。您需要使用aes(color = column) (注意缺少data$ -只使用aes()中的列名),ggplot将在数据中查找该名称的列,并知道如何正确筛选每个方面的数据。
发布于 2016-07-14 22:11:37
这是一种方法:
ggplot(data= d, aes(x = x, y = y ) ) +
geom_point(aes(color = color))+
facet_wrap(~group) +
scale_color_manual(values = c('red' = 'red','blue' = 'blue'))https://stackoverflow.com/questions/38385005
复制相似问题