微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

facet_zoom按日期范围从stat_summary

如何解决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")

解决方法

您的代码可能存在一些问题:

  1. 我删除了limits = as.Date(c("2019-07-01","2020-02-01")),并在filter(Date >= as.Date("2019-07-01"),Date <= as.Date("2020-02-01")) %>%之前使用了ggplot
  2. 我删除了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)

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?