gpt4 book ai didi

r - ggplot2:将多个箱线图作为时间序列排列

转载 作者:行者123 更新时间:2023-12-04 20:01:44 32 4
gpt4 key购买 nike

我想用 ggplot2 创建一个多变量箱线图时间序列,我需要有一个 x 轴来根据相关日期定位箱线图。

我找到了两个关于这个问题的帖子:一个是 Time series plot with groups using ggplot2但 x 轴不是 scale_x_axis 所以图在我的情况下有偏差。另一个是ggplot2 : multiple factors boxplot with scale_x_date axis in R但是这个人使用了我不使用的交互功能。

这是一个示例文件和我的代码:

dtm <- read.table(text="date ruche mortes trmt      
03.10.2013 1 8 P+
04.10.2013 1 7 P+
07.10.2013 1 34 P+
03.10.2013 7 16 P+
04.10.2013 7 68 P+
07.10.2013 7 170 P+
03.10.2013 2 7 P-
04.10.2013 2 7 P-
07.10.2013 2 21 P-
03.10.2013 5 8 P-
04.10.2013 5 27 P-
07.10.2013 5 24 P-
03.10.2013 3 15 T
04.10.2013 3 6 T
07.10.2013 3 13 T
03.10.2013 4 6 T
04.10.2013 4 18 T
07.10.2013 4 19 T ", h=T)

require(ggplot2)
require(visreg)
require(MASS)
require(reshape2)
library(scales)

dtm$asDate = as.Date(dtm[,1], "%d.%m.%Y")

## Plot 1: Nearly what I want but is biased by the x-axis format where date should not be a factor##

p2<-ggplot(data = dtm, aes(x = factor(asDate), y = mortes))
p2 + geom_boxplot(aes(fill = factor(dtm$trmt)))

## Plot 2: Doesn't show me what I need, ggplot apparently needs a factor as x##

p<-ggplot(data = dtm, aes(x = asDate, y = mortes))
p + geom_boxplot(aes( group = asDate, fill=trmt) ) `

任何人都可以帮我解决这个问题吗?

最佳答案

这是你想要的吗?

enter image description here

代码:

p <- ggplot(data = dtm, aes(x = asDate, y = mortes, group=interaction(date, trmt)))
p + geom_boxplot(aes(fill = factor(dtm$trmt)))

关键是按 interaction(date, trmt)分组以便您获得所有框,而不是将 asDate 转换为因子,以便 ggplot 将其视为日期。如果您想向 x 轴添加更多内容,请务必使用 + scale_x_date().

关于r - ggplot2:将多个箱线图作为时间序列排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28767697/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com