2012-03-30 17 views
16

Programowanie dla ggplot2 ułatwia relegację z koniecznością wielokrotnych lub powtarzalnych linii + opt().... Chciałbym jednak wiedzieć, czy istnieje sposób definiowania wartości domyślnych dla geomów i kolorów skali. Zamiast pisać ...+ scale_fill_manual() dla każdego wykresu, chciałbym móc go ustawić i zapomnieć. Podobnie, chciałbym móc ustawić opcje GeoM więc nie trzeba wpisywać (lub zapomnij wpisywać) rzeczy jak geom_text(...,size=3,color="white")Ustawienia domyślne dla geomów i skal ggplot2

Aktualizacja:

Na skalach, wydaje się w pewnym momencie, że nie była metoda:

set_default_scale("colour", "discrete", "grey")

jednak funkcja ta nie wydaje się istnieć w najnowszej wersji ggplot2.

+2

zobaczyć http://groups.google.com/group/ggplot2-dev/ browse_thread/thread/fc838059c281e835? pli = 1 – baptiste

Odpowiedz

16

Jest to teraz inna metoda. Można w zasadzie zastąpić dowolną skalę estetyki, np.

scale_colour_discrete <- function(...) scale_colour_brewer(..., palette="Set2") 
scale_fill_discrete <- function(...) scale_fill_brewer(... , palette="Set2") 

Teraz swoje estetyka będą kolorowe lub wypełnione po tym zachowanie”

Jak na: https://groups.google.com/forum/?fromgroups=#!topic/ggplot2/w0Tl0T_U9dI

W odniesieniu do wartości domyślnych dla geoms, można użyć update_geom_defaults, na przykład:

update_geom_defaults("line", list(size = 2)) 
+2

Zwróć uwagę na "u" w scale_colour_discrete! Próbowałem tego bez, i to nie działało. –

+0

Miałem problem z tym, ale wygląda na to, że zamykają stare problemy z powodu braku czasu na dev. https://github.com/hadley/ggplot2/issues/799 –

4

nie mogę myśleć o niczym użytecznego dla geom s, ale dla scales, jedną z opcji byłoby wykorzystanie faktu, że elementy ggplot s są prosto obiekty R, które mogą być zapisywane, przechowywane i przeniesieni jak każdy inny.

Można więc być może stworzyć swoją własną kolekcję „default” wersje wielu skalach, jak:

sfmDefault <- scale_fill_manual(...) 
scmDefault <- scale_colour_manual(...) 

itp z żądanych wartości domyślnych. Umieść je w swoim profilu .RP lub gdziekolwiek i użyj ich w razie potrzeby.

+0

Jest to metoda, której teraz używam, ale nadal chciałbym ustawić domyślne ustawienie zamiast pamiętać o "... + sfm". Kolejny powód, dla którego tego chcę, to fakt, że chciałbym móc udostępnić mój kod bez udostępniania opcji tematycznych. –

+0

@BrandonBertelsen Przepraszamy za powielenie tego, co już wiesz! Zgadzam się, że nie jest to optymalne z powodów, które określiłeś. Nie wiem nic lepszego. – joran

Powiązane problemy