R 添加geom_hline+;箱线图的样本大小
使用R 添加geom_hline+;箱线图的样本大小,r,ggplot2,R,Ggplot2,使用ggplot,我试图 将水平线添加到箱线图 将样本大小添加到x轴 我有以下数据集: Site, Aluminum_Dissolved, Federal_Guideline M1, 0.1, 0.4 M1, 0.2, 0.4 M1, 0.5, 0.4 M2, 0.6, 0.4 M2, 0.4, 0.4 M2, 0.3, 0.4 添加水平线 我得到以下错误: get(x,envir=this,inherits=inh)中出错(this,…): 映射应该是由aes或aes_字符串创建的未赋值映射
ggplot
,我试图
Site, Aluminum_Dissolved, Federal_Guideline
M1, 0.1, 0.4
M1, 0.2, 0.4
M1, 0.5, 0.4
M2, 0.6, 0.4
M2, 0.4, 0.4
M2, 0.3, 0.4
添加水平线
我得到以下错误:
get(x,envir=this,inherits=inh)中出错(this,…):
映射应该是由aes或aes_字符串创建的未赋值映射的列表
我尝试在字符串中添加数据,例如,geom\u hline(“ExampleData$Federal\u Guideline)
,但我得到了与上面相同的错误
添加样本大小(n=x轴):
最后,我想在x轴的标签上添加n(即,
M2(n=3)
)。我可以用常规的R来完成这项工作,代码如下:names=paste(b$names,”(n=“,b$n,”)))
,其中b
=boxplot
函数,但我不知道如何在ggplot2
中执行此操作,您需要在geom\u hline
中显式命名参数,否则它不知道0.4
指的是什么
所以
将生成所需的水平线
要更改x轴上的标签,请使用scale\u x\u discrete
更改标签
您可以使用以下方法预计算这些
library(plyr)
xlabels <- ddply(ExampleData, .(Site), summarize,
xlabels = paste(unique(Site), '\n(n = ', length(Site),')'))
ggplot(ExampleData, aes(x = Site,y = Aluminum_Dissolved))+
stat_boxplot(geom='errorbar', linetype=1)+
geom_boxplot(fill="pink") + geom_hline(yintercept = 0.4) +
scale_x_discrete(labels = xlabels[['xlabels']])
库(plyr)
xlabels非常感谢您清晰的编辑和回答!我添加了+geom_hline(yintercept=0.4,linetype=2,color=“red”)为了得到我想要的那一行。我尝试添加:show_guide=TRUE以显示图例,但没有效果。我是否犯了某种语法错误?另外,“n”编码工作得很好…谢谢。我自己也不会想到这一点。
ggplot(ExampleData, aes(x = Site,y = Aluminum_Dissolved))+
stat_boxplot(geom='errorbar', linetype=1)+
geom_boxplot(fill="pink") +
geom_hline(yintercept = 0.4)
library(plyr)
xlabels <- ddply(ExampleData, .(Site), summarize,
xlabels = paste(unique(Site), '\n(n = ', length(Site),')'))
ggplot(ExampleData, aes(x = Site,y = Aluminum_Dissolved))+
stat_boxplot(geom='errorbar', linetype=1)+
geom_boxplot(fill="pink") + geom_hline(yintercept = 0.4) +
scale_x_discrete(labels = xlabels[['xlabels']])