我想自定义ggplot点的边距颜色。点填充的颜色汇总了一个信息,而 边距的颜色将总结另一种颜色。
假设使用mtcars数据:
library(ggplot2)
ggplot(mtcars, aes(wt, mpg)) +
geom_point(aes(colour = factor(cyl), shape = factor(vs)))
然后假设您要使用mtcars $ carb列修改点距的颜色。
是否可以使用ggplot
?
答案 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)))
# 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)