[英]ggplot2 box_plot add number of observations
我有这个问题应该是微不足道的,但到目前为止我看到的例子都没有帮助。 我在 R 中有这个融化的 dataframe,我想用 geom_points 做一个 box_plot。 到目前为止,代码有效。
head(df3)
microRNAs variable value
1 geneA LC1_average_TPM 520075.23
2 geneB LC1_average_TPM 315802.96
3 geneC LC1_average_TPM 13356.56
4 geneD LC1_average_TPM 13348.82
5 geneE LC1_average_TPM 13331.13
6 geneF LC1_average_TPM 13309.27
ggplot(df3, aes(x=variable, y=log(value), fill=variable)) +
geom_boxplot(aes(fill = variable))+
geom_point(shape = 21, alpha = 0.9, position=position_jitterdodge(jitter.width = 3, jitter.height = 0)) +
scale_fill_brewer(palette = "Spectral") + scale_y_continuous(limits=c(0,15), breaks=seq(0,15,1)) + theme(axis.text.x=element_blank()) + ylab("log2(Expression TPM)") + xlab ("Libraries")
我的问题是我想向 plot 添加观察结果。 观察结果取决于每个 df3$variable 获得的数据点数。
有人可以帮忙吗?
如果您使用 mutate,正如我的评论所建议的那样,它是可行的,但是您会重复获得多个 n 值,您需要使用summarsie
并创建一个单独的表。 您将使用data
参数将其添加到geom_text()
调用中。 我将您的data.frame
命名为“df”,但在您的情况下调整为df3
。
counts_df <-
df %>%
group_by(variable) %>%
summarise(group_n = length(variable))
df %>%
ggplot(aes(x=variable, y=log(value), fill=variable)) +
geom_boxplot(aes(fill = variable))+
# this is what you want to add < ----
geom_text(
data = counts_df,
aes(variable, y=10,
label=group_n))+
geom_point(shape = 21, alpha = 0.9, position=position_jitterdodge(jitter.width = 3, jitter.height = 0)) +
scale_fill_brewer(palette = "Spectral") +
scale_y_continuous(limits=c(0,15), breaks=seq(0,15,1)) +
theme(axis.text.x=element_blank()) +
ylab("log2(Expression TPM)") +
xlab ("Libraries")
这会产生这个可怕的 plot,使用y
参数为n
调整美学和 position。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.