如何解决facet_zoom按日期范围从stat_summary
我正在尝试放大特定的日期范围,但是下面的代码不允许我这样做。在此图中,Bleach
的stat_summary和Species
的现有构面。如果可以的话,我愿意将每个物种放大为单独的图,但我尝试按物种进行亚集,但仍然无法产生所需的结果。
structure(list(ColonyID = c("11","11","12","238","239","239"),Species = structure(c(1L,1L,2L,2L),.Label = c("Montipora capitata","Porites compressa"),class = "factor"),Bleach = structure(c(1L,1L),.Label = c("Bleach","Non-bleach"),Date = structure(c(18096,18155,18171,18185,18199,18285,18501,18096,18501),class =
"Date"),Colorscore2 = c(3L,4L,3L,1L)),row.names = c(3L,43L,83L,123L,163L,203L,243L,44L,84L,124L,164L,204L,244L,34L,74L,114L,154L,194L,234L,274L,35L,75L,115L,155L,195L,235L,275L),class =
"data.frame")
a <- ggplot(test,aes(x = Date,y = Colorscore2,color = Bleach)) + stat_summary(aes(group =
Bleach),fun = mean,geom = "point") + stat_summary(aes(group = Bleach),geom =
"line") + scale_color_manual(values = c("Bleach" = "gray","Non-bleach" = "black")) +
scale_fill_manual(values = c("Bleach" = "gray","Non-bleach" = "black")) +.
scale_x_date(date_breaks = "1 month",date_labels = "%b",limits = as.Date(c("2019-07-01","2020-02-01"))) + facet_grid(. ~ Species) + labs(y = "Bleaching score",x = "Date") +.
theme_bw()
b <- a + facet_zoom(x = Date >= "2019-09-16" & Date <= "2019-10-30")
解决方法
您的代码可能存在一些问题:
- 我删除了
limits = as.Date(c("2019-07-01","2020-02-01"))
,并在filter(Date >= as.Date("2019-07-01"),Date <= as.Date("2020-02-01")) %>%
之前使用了ggplot
。 - 我删除了
facet_grid(. ~ Species)
,因为它可能不适用于facet_zoom
。相反,我生成了两个单独的图,并使用ggarrange
中的ggpubr
组合了它们。可以简化代码,但思路相同。希望这会有所帮助。
library(tidyverse)
library(ggpubr)
a_1 <- test %>%
filter(Date >= as.Date("2019-07-01"),Date <= as.Date("2020-02-01"),Species == "Montipora capitata"
) %>%
ggplot(aes(x = (Date),y = ColorScore2,color = Bleach)) +
stat_summary(aes(group = Bleach),fun = mean,geom = "point") +
stat_summary(aes(group = Bleach),geom = "line") +
scale_color_manual(values = c("Bleach" = "gray","Non-bleach" = "black")) +
scale_fill_manual(values = c("Bleach" = "gray","Non-bleach" = "black")) +
scale_x_date(date_breaks = "1 month",date_labels = "%b") +
theme_bw() +
labs(title = "Montipora capitata")
b_1 <- a_1 + facet_zoom(xlim = c(as.Date("2019-09-16"),as.Date("2019-10-30")))
b_1
a_2 <- test %>%
filter(Date >= as.Date("2019-07-01"),Species == "Porites compressa"
) %>%
ggplot(aes(x = (Date),date_labels = "%b") +
theme_bw()+
labs(title = "Porites compressa")
b_2 <- a_2 + facet_zoom(xlim = c(as.Date("2019-09-16"),as.Date("2019-10-30")))
ggarrange(b_1,b_2,common.legend = TRUE)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。