ggplot2自定义图例结合了形状和填充

时间:2018-07-28 16:42:54

标签: r ggplot2

我正在尝试在ggplot2图例中组合fillcolor。因为x轴有几种颜色,所以逻辑上ggplot2不知道在图例中选择哪种颜色。

例如:

library(ggplot2)
ggplot(mpg, aes(fl, hwy)) +
    geom_point(aes(color = fl, shape = factor(year), fill = fl)) +
    scale_shape_manual(values = c("circle filled", "circle open"))

enter image description here

我的目标是手动编辑factor(year)图例,如下所示:

enter image description here

我在guides()函数周围玩过,没有成功。

修改
通过运行shape可以找到vignette("ggplot2-specs")的值。

2 个答案:

答案 0 :(得分:1)

您已经用scale_shape_manual得到了几乎正确的答案。但是以某种方式,“圆填充”参数是无效的。由于我不确定可以在哪里查找这些值,因此我从类似问题(source)的表中获取了这些值: enter image description here

因此,如果值分别为20和79,则可以获得所需的结果。

ggplot(mpg, aes(fl, hwy)) +
  geom_point(aes(color = fl, shape = factor(year), fill = fl)) +
  scale_shape_manual(values = c(16,79))

输出: enter image description here

答案 1 :(得分:0)

好,所以这是使它看起来像上图的一种非常round回的方法。也许其他人可以提出一个更直观的版本:

ggplot(mpg, aes(fl, hwy)) +
  geom_point(aes(color = fl, shape = factor(year), fill = factor(year))) +
  scale_shape_manual(values = c(16,79), guide = FALSE)  +
  scale_fill_manual("Year", values=c("grey","white"))+
                    guides(fill = guide_legend(override.aes = list(shape = c(21,21),
                                                color = c("black", "black"))))

输出: enter image description here