2016-10-11 4 views
0

Я создал обертку для ggplot и хотел бы, чтобы пользователь мог включить или выключить некоторые элементы. Например, на некоторых графиках пользователь захочет установить минимум оси y в 0, а в других - нет.ggplot2 - добавить элементы программно

В этом случае я хочу, чтобы в этом случае пользователь передавал переменную «ymin» функции T или F. Если T, то к диаграмме следует добавить следующий элемент.

+ expand_limits(y=0) 

Есть ли простой способ достичь этого? Или существует совершенно другой подход к этой проблеме, которую я должен использовать?

+1

Существует - вы можете использовать 'if' петлю. Что вы пробовали? (примечание - вы можете сохранить ggplot как объект, например 'p <- ggplot (...) + ...', а затем сделать 'p + expand_limits (...)'. –

ответ

1

Mathematical.coffee подтолкнул меня в правильном направлении. Вот подробный ответ.

plot <- ggplot(data=data, aes(...))+ 
    geom_line() 

if(ymin == T) 
{ 
    plot <- plot + expand_limits(y=0) 
} 
0

Вы можете обернуть свой ggplot функцией, где вы можете указать параметр. Если параметр не предусмотрены функции, приписанное значение в подписи используется

plotWithLimits <- function(y=0, data, ...) { 
    return ggplot(data=data, aes(..)) + geom_line()+expand_limits(y=0) 
} 
Смежные вопросы