我想绘制多年(2021-2023)湖泊深度(y 轴)和温度(x 轴)的时间序列数据。
由于一个月内有多个样本采集日期,我想按年份 (DOY) 进行着色/填充以区分每个采样日期,但我想重新格式化图例栏以说出实际日期。
我对 Stack Overflow 还很陌生,所以我对我的问题格式表示歉意。
我正在使用的数据类型的示例 DataFrame。这是 2021 年的子集,但我有 2021-2023 年的数据。
library(tidyverse)
Temperature <- tibble(Depth = (c('1' ,'2', '3' , '1', '2', '3')),
Date = c('1/18/2021', '1/18/2021', '1/18/2021', '3/11/2021', '3/11/2021', '3/11/2021'),
DOY = c('18', '18', '18', '70', '70', '70'),
Temp = c('1', '2.5', '3.5', '1.2', '2.0', '2.5'))
Temperature %>%
ggplot(aes(x = Temp, y = Depth, colour = DOY, group = DOY))+
geom_point()+
geom_path()+
scale_y_reverse(limits = c(5,0)) +
scale_x_continuous(limits = c(0,4))+
theme_bw()
我还附上了我的绘图示例。在此处输入图像描述
也许最简单的方法是根据 DOY 创建一个日期变量(一年内,例如 2024 年):
Temperature %>%
mutate(across(c(Depth, DOY, Temp), as.numeric)) |>
mutate(Date = mdy(Date)) |>
mutate(DOY2 = ymd(20231231) + DOY) |>
ggplot(aes(x = Temp, y = Depth, colour = DOY2, group = DOY2))+
geom_point()+
geom_path()+
scale_y_reverse(limits = c(5,0)) +
scale_x_continuous(limits = c(0,4))+
theme_bw()