【发布时间】:2020-10-26 20:52:34
【问题描述】:
我想为数据框中的每一列绘制箱线图。所以我创建了一个函数来做到这一点。我的数据集如下所示:
set.seed(123)
x1=rnorm(100,0,1)
x2=rnorm(100,0,0.5)
x3=rnorm(100,0,0.6)
data_x=data.frame(x1,x2,x3)
datax_long=data_x %>% gather(x_val ,value ,x1:x3)
> head(datax_long)
x_val value
1 x1 -0.56047565
2 x1 -0.23017749
3 x1 1.55870831
4 x1 0.07050839
5 x1 0.12928774
6 x1 1.71506499
我创建了以下函数来实现我的目的。
plot_fun=function(var,low_lim,upp_lim,coef,data)
{
plt=ggplot(data, aes(x = coef, y =var ,color=var)) +
stat_summary(geom = "errorbarh",
fun.min = function(z) quantile(z, low_lim),
fun = mean,
fun.max = function(z) quantile(z, upp_lim)) +
stat_summary(geom = "point", fun = mean)
print(plt + labs(y=var)+labs(colour = var))
}
它给了我想要的输出,除了 y 轴标签和图例的标题。
plot_fun(datax_long$x_val,0.025,0.975,datax_long$value,datax_long)
在上面的输出中,y轴的标签应该是“x_val”而不是x1。此外,图例的标题也应该是“x_val”而不是 x1。
谁能帮我弄清楚如何修改上述函数以获得所需的结果?
谢谢。
【问题讨论】: