如何在ggplot中更改默认美学?

时间:2013-01-07 13:17:01

标签: r ggplot2 default aesthetics

假设默认情况下我希望geom_point使用圆圈(pch=1)而不是实心圆点(pch=16)。您可以通过将shape参数传递给geom_point来更改标记的形状,例如

ggplot(diamonds, aes(depth, carat, colour=cut)) + geom_point(shape=1)
ggplot(diamonds, aes(depth, carat, colour=cut)) + geom_point(shape=16)

但我无法弄清楚如何更改默认行为。

2 个答案:

答案 0 :(得分:13)

Geom(和stat)默认值可以直接更新:

update_geom_defaults("point", list(shape = 1))
ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point()

enter image description here

答案 1 :(得分:7)

这样做的一种方法(尽管我不喜欢它)是制作自己的geom_point函数。 E.g。

geom_point2 <- function(...) geom_point(shape = 1, ...)

然后正常使用:

ggplot(diamonds, aes(depth, carat, colour=cut)) + geom_point2()

或者,如果您愿意,可以覆盖函数geom_point()

geom_point <- function(...) {
  ggplot2::geom_point(shape = 1, ...)
}

这可能被认为是不好的做法,但它确实有效。然后你不必改变你的绘图方式:

ggplot(diamonds, aes(depth, carat, colour=cut)) + geom_point()