2013-01-07 8 views
5

Angenommen, ich würde geom_point bevorzugen, Kreise (pch=1) anstelle von festen Punkten (pch=16) standardmäßig zu verwenden. Sie können die Form der Markierungen ändern, indem Sie ein shape Argument an geom_point übergeben, z.Wie ändert man Standardästhetik in ggplot?

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

aber ich kann nicht herausfinden, wie Sie das Standardverhalten ändern.

+2

@AR Ich glaube wirklich nicht, das ist relevant für diese Frage überhaupt. – joran

Antwort

12

Geom (und stat) default direkt aktualisiert werden können:

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

enter image description here

7

Ein Weg, es zu tun (obwohl ich es nicht wirklich mag) ist, Ihre eigene geom_point-Funktion zu machen. Z.B.

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

Dann benutzen Sie einfach als normal:

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

Oder wenn Sie möchten, die Funktion außer Kraft setzen können geom_point():

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

Diese schlechte Praxis in Betracht gezogen werden könnte, aber es funktioniert. Dann müssen Sie sich nicht ändern, wie Sie Grundstück:

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