ggplot:自定义点的边距颜色

时间:2019-03-28 17:32:25

标签: r ggplot2

我想自定义ggplot点的边距颜色。点填充的颜色汇总了一个信息,而 边距的颜色将总结另一种颜色。

假设使用mtcars数据:

library(ggplot2)
ggplot(mtcars, aes(wt, mpg)) +
    geom_point(aes(colour = factor(cyl), shape = factor(vs)))

然后假设您要使用mtcars $ carb列修改点距的颜色。

是否可以使用ggplot

1 个答案:

答案 0 :(得分:3)

是的,您需要将fill用作内部颜色并将color用作线条颜色。并且您需要使用区分这两种形状的形状(即形状21-25。搜索“ r pch”或查看?pch的帮助页面以获取所有形状)。不幸的是,为了使图例看起来正确,我们需要手动为图例指定形状。您可能还希望至少使用一个manual比例(例如scale_fill_manual)来指定自己的颜色,以使填充和线条的颜色更加不同。

ggplot(mtcars,
    aes(
      x = wt,
      y = mpg,
      color = factor(carb),
      fill = factor(cyl),
      shape = factor(vs)
    )) + geom_point(size = 2, stroke = 1.5) +
  scale_shape_manual(values = c(21, 24)) +
  scale_fill_hue(guide = guide_legend(override.aes = list(shape = 21))) +
  scale_color_hue(guide = guide_legend(override.aes = list(shape = 21)))

enter image description here 另请参见?geom_point帮助页面底部的示例:

# For shapes that have a border (like 21), you can colour the inside and
# outside separately. Use the stroke aesthetic to modify the width of the
# border
ggplot(mtcars, aes(wt, mpg)) +
  geom_point(shape = 21, colour = "black", fill = "white", size = 5, stroke = 5)