无法使用..count ..,geom_point和facet_wrap手动设置颜色

时间:2016-10-26 19:54:02

标签: r ggplot2 colors facet-wrap aesthetics

我已经看到了很多关于此问题的变体,以及我收到的错误消息。但是,没有一种情况像我试图做的那样。假设我有一些看起来像这样的数据:

r <- c("zero", "r", "zero", "zero", "r", "r", "r", "zero", "r", "r")

store <- c("Saks", "Saks", "Klein's", "Macy's", "Saks", "Klein's", "Macy's", "Macy's", "Klein's", "Saks")

dat <- data.frame(r, store)

# Specify the colors
cols <- c(r = "#1B79A5", zero = "#FD7701")

我可以使用默认的ggplot2颜色获得我想要的内容,如下所示:

ggplot(data = dat, aes(x = r,  shape = r, colour = r, ..count..)) +
geom_point(stat = "count", size = 3) +
facet_wrap(~ store)

当我尝试添加自定义颜色时出现问题。如果我没有添加facet_wrap()图层,则不会出现问题:

ggplot(data = dat, aes(x = r, fill = r, shape = r, ..count..)) +
    geom_point(stat = "count", color = cols, size = 3)

但是,如果我添加了facet_wrap()图层

ggplot(data = dat, aes(x = r, fill = r, shape = r, ..count..)) +
    geom_point(stat = "count", color = cols, size = 3) + 
    facet_wrap(~store)

我收到错误消息Aesthetics must be either length 1 or the same as the data (6): colour, size

同样,这里有很多帖子都有类似的错误信息,但没有人做我正在尝试的同样的事情。

尝试scale_fill_manual(values = cols)时我也尝试了很多变化但是没有做任何事情:没有错误信息,只有黑点。

(我通常在这种情况下使用条形图没有困难,但我试图弄清楚ggplot2的不同方面,所以我想我会尝试这样做)。

1 个答案:

答案 0 :(得分:2)

您应该只需要将scale_color_manual()添加到您的第一个图中,该图适用于您但使用默认颜色。

ggplot(data = dat, aes(x = r,  shape = r, colour = r, ..count..)) +
geom_point(stat = "count", size = 3) +
facet_wrap(~ store) +
    scale_color_manual(values = c("#1B79A5", "#FD7701"))

enter image description here