2013-01-07 29 views
5

Załóżmy, że wolałbym geom_point używać domyślnie kółek (pch=1) zamiast stałych kropek (pch=16). Możesz zmienić kształt znaczników, przekazując argument shape do np. geom_point, np.Jak zmienić domyślną estetykę w ggplot?

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

ale nie mogę wymyślić, jak zmienić domyślne zachowanie.

+2

@AR I naprawdę nie sądzę, że to istotne dla tego pytania. – joran

Odpowiedz

12

Geom (a stat) domyślne mogą być aktualizowane bezpośrednio:

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

enter image description here

7

Jednym ze sposobów na zrobienie tego (choć naprawdę tego nie lubię) jest utworzenie własnej funkcji geom_point. Na przykład.

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

Następnie wystarczy użyć jako normalny:

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

Lub jeśli chcesz, możesz zastąpić funkcję geom_point():

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

Może to być uznane za złą praktyką, ale to działa. Wtedy nie trzeba by zmienić sposób działki:

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