2016-10-11 53 views
0

我已經爲ggplot構建了一個包裝,並希望啓用此功能的用戶打開或關閉某些元素。例如,在一些情節中,用戶想要將y軸最小值設置爲0,而在其他情況下則不會。ggplot2 - 以編程方式添加元素

在這種情況下,我希望能夠做的事情是讓用戶將'ymin'變量作爲T或F傳遞給函數。如果T,則應將下列元素添加到圖表中。

+ expand_limits(y=0) 

有沒有簡單的方法來實現這一目標?或者是否有一種完全不同的方法來處理我應該使用的這類問題?

+1

有 - 你可以使用'if'循環。你有什麼嘗試? (注意 - 你可以將一個ggplot保存爲一個對象,例如'p < - ggplot(...)+ ...',然後執行'p + expand_limits(...)'。 –

回答

1

數學咖啡已經把我推向了正確的方向。這是一個詳盡的答案。

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) 
}