2012-03-30 3 views
16

. Для создания ggplot2 очень легко отменить необходимость в нескольких или повторяющихся линиях + opt().... Однако я хотел бы знать, есть ли способ определить значения по умолчанию для геометрий и цветов шкалы. Вместо того, чтобы писать ...+ scale_fill_manual() для каждого сюжета, я хотел бы иметь возможность установить его и забыть. Кроме того, я хотел бы быть в состоянии установить GeoM варианты, так что я не должен перепечатывать (или забыть перепечатывать) вещи, как geom_text(...,size=3,color="white")Установка значений по умолчанию для геометрий и шкалы ggplot2

Обновление:

Для шкал, кажется в какой-то момент, что есть был метод:

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

Но эта функция, кажется, не существует в самой последней версии ggplot2.

+2

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

ответ

16

Существует еще один способ для этого. Вы можете существенно перезаписывать любую эстетику шкалы, например: «

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

Теперь ваша эстетика будет окрашена или заполнена следующей таким поведением.

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

Что касается значения по умолчанию для геометрий, вы можете использовать update_geom_defaults, например:

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

Обратите внимание на «u» в scale_colour_discrete! Я просто пробовал это без, и это не сработало. –

+0

У меня была проблема с этим, но похоже, что они закрывают старые проблемы из-за отсутствия времени разработки. https://github.com/hadley/ggplot2/issues/799 –

4

Я не могу думать что-нибудь полезное для geom с, но для scales, один из вариантов было бы использовать тот факт, что компоненты ggplot с являются все просто объекты R, которые могут быть сохранены, сохраненные и переназначены, как и любой Другие.

Таким образом, вы могли бы, возможно, создать свою собственную коллекцию «по умолчанию» версии многих масштабов, как:

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

и т.д. с вашими заданными значениями по умолчанию. Поместите их в свой .RProfile или где угодно и используйте их по мере необходимости.

+0

Это метод, который я использую сейчас, но мне все же хотелось бы установить значение по умолчанию, а не помнить '... + sfm'. Еще одна причина, по которой я хочу это, - это то, что я хотел бы иметь возможность делиться своим кодом, не разделяя его. –

+0

@BrandonBertelsen Извините за то, что вы уже знаете! Я согласен, что это не оптимально по причинам, которые вы изложили. Однако я не знаю ничего лучшего. – joran

Смежные вопросы