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

Can't set colour manually with ..count .., geom_point and facet_wrap

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

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

同样,这里有很多帖子都带有类似的错误消息,但是 none 正在做与我正在尝试的相同的事情。

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

(我通常在这种情况下毫无困难地使用条形图,但我试图找出 ggplot2 的不同方面,所以我想我会试试这个)。

您应该只需要将 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"))