How to change default aesthetics in ggplot?
Asked Answered
I

2

9

Let's say that I would prefer geom_point to use circles (pch=1) instead of solid dots (pch=16) by default. You can change the shape of the markers by passing a shape argument to geom_point, e.g.

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

but I can't figure out how to change the default behaviour.

Itself answered 7/1, 2013 at 13:17 Comment(0)
H
16

Geom (and stat) default can be updated directly:

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

enter image description here

Hiero answered 7/1, 2013 at 21:38 Comment(0)
S
8

One way to do it (although I don't really like it) is to make your own geom_point function. E.g.

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

Then just use as normal:

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

Or if you want you can override the function geom_point():

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

This might be considered bad practice but it works. Then you don't have to change how you plot:

ggplot(diamonds, aes(depth, carat, colour=cut)) + geom_point()
Schutzstaffel answered 7/1, 2013 at 14:51 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.