2016-10-11 81 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) 
}