在其他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
搞混了。相应地更改答案。