在其他ggplot函数中使用提供给aes_string()的变量

在其他ggplot函数中使用提供给aes_string()的变量,r,ggplot2,cowplot,R,Ggplot2,Cowplot,我在一个函数中使用aes\u string()来创建一些图形。我正在使用cowplot进行主题化,这将轴缩放到所提供数据的最大值,在最大值处切断点的顶部或侧面,如下面的示例所示 因此,我想在列的最大数据中添加5%,以增加一点空间。如果我没有写函数,我可以做如下事情 scale_y_continuous(expand = c(0,0), limits = c(0, max(y_var) * 1.05)) 但是,我不知道如何使用aes\u stri

我在一个函数中使用
aes\u string()
来创建一些图形。我正在使用cowplot进行主题化,这将轴缩放到所提供数据的最大值,在最大值处切断点的顶部或侧面,如下面的示例所示

因此,我想在列的最大数据中添加5%,以增加一点空间。如果我没有写函数,我可以做如下事情

scale_y_continuous(expand = c(0,0), 
                       limits = c(0, max(y_var) *  1.05))
但是,我不知道如何使用
aes\u string()。有人能解释一下如何使用
aes\u string()

库(cowplot)
图书馆(GG2)

fig\u fun您可以从
扩展\u限制内的数据中提取
y
变量,并将其缩放5%:

expand_limits(y = c(0, max(data[, var])*1.05))
这使得:

fig_fun <- function(data, var){
  ggplot(data, aes_string(x = "wt", y = var)) + 
    geom_line() + 
    geom_point() +
    expand_limits(y = c(0,max(data[, var])*1.05))) # picking the var column here
}

fig\u fun您可以从
expand\u limits
内的数据中提取
y
变量,并将其缩放5%:

expand_limits(y = c(0, max(data[, var])*1.05))
这使得:

fig_fun <- function(data, var){
  ggplot(data, aes_string(x = "wt", y = var)) + 
    geom_line() + 
    geom_point() +
    expand_limits(y = c(0,max(data[, var])*1.05))) # picking the var column here
}

fig\u fun如果希望轴展开,请不要发送
expand=c(0,0)
。您是否可以不使用
max(data[,var])
来获取
y
变量的所有值的最大值?然后你可以随意更改它。@Roland,很不幸,我被要求x轴在零处穿过y轴,因此
expand=c(0,0)
@niczky12,效果很好,你想把它作为一个答案添加进来让我接受吗?不要发送
expand=c(0,0)
如果希望轴展开。是否可以使用
max(data[,var])
获取
y
变量所有值的最大值?然后你可以随意改变它。@Roland,很不幸,我被要求x轴在零处穿过y轴,因此
expand=c(0,0)
@niczky12,效果很好,你想把它添加为一个答案,让我接受吗?啊,我做了
limits=c(0,max(data[,var])*1.05)
因为需要通过上述注释中描述的零。但是,谢谢,这让我得到了我所需要的。这不是
expand
参数的工作方式。这两个数字是两端的乘法和加法常数。因此,如果你想在比例上增加5%,你可以给出
c(0.05,0)
(这已经是默认值)@r、 bot具有设置
限制的正确解决方案(以及
expand=c(0,0)
)。@Axeman您是对的。我被
expand\u limits
搞混了。相应地更改答案。啊,我确实做了
limits=c(0,max(data[,var])*1.05)
,因为上面的评论中描述了通过零的要求。但是,谢谢,这让我得到了我所需要的。这不是
expand
参数的工作方式。这两个数字是两端的乘法和加法常数。因此,如果你想在比例上增加5%,你可以给出
c(0.05,0)
(这已经是默认值)@r、 bot具有设置
限制的正确解决方案(以及
expand=c(0,0)
)。@Axeman您是对的。我被
expand\u limits
搞混了。相应地更改答案。