如何解决facet_wrap中按组的均值和观察值 数据集的简要示例:当前图输出:
我阅读了数十篇有关如何在每个facet_wrap
中添加标签的帖子,但我希望在这里有所帮助,因为我坚持添加均值(λ)和观测值数量( k )。我使用了大部分post,但在以下各项方面感到困惑:
- 将正确的均值和观察值的数量按组添加到方面
- 将均值取整为两位数
- 将“均值”标签更改为正确的希腊字母lambda-Unicode(u + 03BB)
df_dztpois <- subset(df_full,select=c("PIA_ITEM","PIA_TYPE","DELY_QTY_WINS","DELY_QTY_DZTPOIS"))
df_dztpois_summary = df_dztpois %>% group_by(PIA_ITEM) %>%
summarize(count = length(DELY_QTY_WINS),mean = mean(DELY_QTY_WINS)) %>%
mutate(lab = paste("count = ",count,"\nmean = ",mean))
p <- ggplot(data = df_dztpois,aes(x=DELY_QTY_WINS))
p <- p + geom_line(aes(y=DELY_QTY_DZTPOIS))
p <- p + facet_wrap( ~ PIA_TYPE,nrow=3,scales = "free")
p <- p + xlab("Observation") + ylab("Probability")
p <- p + theme(
legend.position = "bottom",legend.text = element_text(size = 12),strip.text.x = element_text(size = 12))
p <- p + labs(title = "Zero-truncated Poisson distribution of order quantity",subtitle = "Grouped by product (PIA_TYPE)",caption = "Data source: df_dztpois$DELY_QTY_WINS and df_full$DELY_QTY_DZTPOIS")
p <- p + geom_text(data = df_dztpois_summary,aes(label = lab),x=Inf,y=Inf,hjust=1,vjust=1.2)
p
数据集的简要示例:
> dput(df_dztpois[1:10,])
structure(list(PIA_ITEM = structure(c(2L,2L,2L),.Label = c("RX20 1.5t Type 6209-10","RX20 1.6t Type 6211","RX20 1.6t Type 6221","RX20 1.8t Type 6213","RX20 2.0t Type 6215","RX20 2.0t Type 6225","RX20 2.0t Type 6230"),class = "factor"),PIA_TYPE = c("6211","6211","6211"),DELY_QTY_WINS = c(75,62,57,67,53,70,60),DELY_QTY_DZTPOIS = c(1.09669678480388e-08,3.8744657910606e-05,0.000448728658516301,2.24150656988175e-06,0.0023318386482722,3.38775858809732e-07,0.000108487832825478
)),row.names = c(NA,10L),class = "data.frame")
> str(df_dztpois)
'data.frame': 959 obs. of 4 variables:
$ PIA_ITEM : Factor w/ 7 levels "RX20 1.5t Type 6209-10",..: 2 2 2 2 2 2 2 2 2 2 ...
$ PIA_TYPE : chr "6211" "6211" "6211" "6211" ...
$ DELY_QTY_WINS : num 75 62 57 57 67 57 53 70 70 60 ...
$ DELY_QTY_DZTPOIS: num 1.10e-08 3.87e-05 4.49e-04 4.49e-04 2.24e-06 ...
当前图输出:
解决方法
您的代码有一个问题:
- 您用
PIA_TYPE
进行了构面,但摘要df按PIA_ITEM
分组了
我不确定这是否是根本原因,因为在您的示例数据中,PIA_TYPE
和PIA_ITEM
相同,因此我将PIA_TYPE
更改为2个不同的级别
创建摘要df时,您可以使用n()
来计算观察值的数量,使用round
来获取正确的数字并将lambda表示为\U03BB
。
df_dztpois <- structure(list(PIA_ITEM = structure(c(2L,2L,2L),.Label = c("RX20 1.5t Type 6209-10","RX20 1.6t Type 6211","RX20 1.6t Type 6221","RX20 1.8t Type 6213","RX20 2.0t Type 6215","RX20 2.0t Type 6225","RX20 2.0t Type 6230"),class = "factor"),PIA_TYPE = c("6211","6211","6212","6212"),DELY_QTY_WINS = c(75,62,57,67,53,70,60),DELY_QTY_DZTPOIS = c(1.09669678480388e-08,3.8744657910606e-05,0.000448728658516301,2.24150656988175e-06,0.0023318386482722,3.38775858809732e-07,0.000108487832825478
)),row.names = c(NA,10L),class = "data.frame")
library(ggplot2)
library(dplyr)
df_dztpois_summary <- df_dztpois %>%
group_by(PIA_TYPE) %>%
summarize(count = n(),mean = mean(DELY_QTY_WINS)) %>%
mutate(lab = paste("count = ",count,"\n\U03BB = ",round(mean,digits = 2)))
p <- ggplot(data = df_dztpois,aes(x=DELY_QTY_WINS))
p <- p + geom_line(aes(y=DELY_QTY_DZTPOIS))
p <- p + facet_wrap( ~ PIA_TYPE,nrow=3,scales = "free")
p <- p + xlab("Observation") + ylab("Probability")
p <- p + theme(
legend.position = "bottom",legend.text = element_text(size = 12),strip.text.x = element_text(size = 12))
p <- p + labs(title = "Zero-truncated Poisson distribution of order quantity",subtitle = "Grouped by product (PIA_TYPE)",caption = "Data source: df_dztpois$DELY_QTY_WINS and df_full$DELY_QTY_DZTPOIS")
p <- p + geom_text(data = df_dztpois_summary,aes(label = lab),x=Inf,y=Inf,hjust=1,vjust=1.2)
p
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。