r - 在ggplot中绘制具有不同日期的时间线的问题

标签 r ggplot2

我正在绘制两个不同年份(07 和 08)的数据。这两年的日期略有不同,但是当我在 R 中绘制它时,我无法获取所有日期,R 将它们重新排列为降序,或者将它们一个接一个地拆分为两个不同的年份,中间有一个空格。

我需要将它们放在一起,其中一些日期略有偏差。

日期应该是:

data_07[,1]<-c("7/6","21/6","31/6","14/7","28/7","11/8","25/8","8/9")

data_08[,1]<-c("7/6","21/6","5/7","19/7","2/8","16/8","25/8","8/9")

我的脚本

data7 <- data.frame(
         Date = c("7/6","21/6","31/6","14/7","28/7","11/8","25/8","8/9"),
         variable = sample(c("Age 39-40", "Age 62-63"), 8, replace = TRUE),
         value = sample(1:8)
    )


data8 <- data.frame(
         Date = c("7/6","21/6","5/7","19/7","2/8","16/8","25/8","8/9"),
         variable = sample(c("Age 39-40", "Age 62-63"), 8, replace = TRUE),
         value = sample(1:8)
    )


p1<-ggplot(data7, 
    aes(x=Date, y=value, group=variable)) + 
    geom_point(size=2, shape = 15) +
    geom_line(linetype=1) +

    geom_line(data=data8, aes(x=Date, y=value, group=variable),linetype=2) +
    geom_point(data=data8, size=2, shape = 1)


 p1 + facet_wrap( ~ variable, nrow = 5, ncol = 1, scales= "fixed") +
    labs(x="Dates", y="Catches per 20 traps", title="") +
    theme(panel.grid.minor.y = element_blank(),
    panel.grid.major.y = element_blank())

感谢任何帮助和建议。 谢谢!

丹尼尔

最佳答案

如果年份对于绘图不重要,我建议在数据中分配一个新列来指示年份,将所有日期转换为普通年份,然后将它们分组绘制。

library(dplyr)
library(ggplot2)
library(lubridate)

#* dates are initially stored in dd/mm format.
#* create a variable where year = 2007
#* turn all dates to dd/mm/2000
data_07 <- data.frame(date = c("7/6","21/6","31/6","14/7","28/7","11/8","25/8","8/9"),
                      y = rnorm(8),
                      stringsAsFactors=FALSE) %>%
  mutate(year = 2007,
         date = dmy(paste0(date,"/2000")))


data_08 <- data.frame(date = c("7/6","21/6","5/7","19/7","2/8","16/8","25/8","8/9"),
                      y = rnorm(8),
                      stringsAsFactors=FALSE) %>%
  mutate(year = 2008,
         date = dmy(paste0(date,"/2000")))

both_years <- bind_rows(data_07, data_08)

ggplot(data = both_years,
       mapping = aes(x = date,
                     y = y,
                     colour = factor(year))) + 
  geom_point() + 
  geom_line()

关于r - 在ggplot中绘制具有不同日期的时间线的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31313194/

相关文章:

r - 在R中按组删除数据尾部

r - 在 R 中使用 geom_line 时显示不正确

r - 使用 ggplot2 对轴文本进行条件格式化

r - 用每条/组的观察数量注释 ggplot boxplot 方面

r - 与 R 一起使用时如何在 libcurl 中启用 scp?

RStudio:右括号被覆盖

R - 选择连续出现最多的数字

r - 为什么这些数字不相等?

r - ggplot2交错轴标签

r - ggplot 认为美学不是通过 `aes()` 制作的,但它是