I need to obtain value at 15th of every month from the geom line created using the reproducible example below. The original geom points are at varied monthly dates depending on data collection days. Appreciate any help possible
Value <- c(19.14104, 11.72115, 9.66083, 10.99109, 13.65047, 10.10627, 13.53027, 18.25272, 25.57741)
Dates <- c("07/11/19", "28/11/19", "16/12/19", "10/01/20", "21/01/20", "03/02/20", "04/03/20", "19/03/20", "20/05/20")
df <- data.frame(Value, Dates)
View(df)
df$Dates <- lubridate::dmy(df$Dates)
gpp_plot <- ggplot()
geom_point(data = df, aes(x=Dates, y=Value), alpha=0.5)
geom_line(data = df, aes(x=Dates, y=Value), alpha=0.5)
theme(axis.text.y=element_text(size=10),
axis.title=element_text(size=10, , face = "bold"),
axis.text.x = element_text(size=10, face = "bold", angle = 45, vjust = 0.5))
xlab('')
ylab('LI-7810_FCH4_DRY_[nmol 1m-2s-1]')
scale_x_date(date_labels = "%b %y",breaks = "1 months")
theme(legend.position="none")
gpp_plot
CodePudding user response:
As suggested in comments, you could approx the Value at new dates:
library(ggplot2)
library(lubridate)
Dates <- dmy(Dates)
NewDates <- seq(floor_date(min(Dates),'month'),floor_date(max(Dates),'month'),by='month') days(14)
#[1] "2019-11-15" "2019-12-15" "2020-01-15" "2020-02-15" "2020-03-15" "2020-04-15" "2020-05-15"
NewValue <- approx(Dates,Value,NewDates)$y
df <- data.frame(Value=c(Value,NewValue), Dates=c(Dates,NewDates))
gpp_plot <- ggplot()
geom_point(data = df, aes(x=Dates, y=Value), alpha=0.5)
geom_line(data = df, aes(x=Dates, y=Value), alpha=0.5)
theme(axis.text.y=element_text(size=10),
axis.title=element_text(size=10, , face = "bold"),
axis.text.x = element_text(size=10, face = "bold", angle = 45, vjust = 0.5))
scale_x_date(date_labels = "%b %y",breaks = "1 months")
ylab('LI-7810_FCH4_DRY_[nmol 1m-2s-1]')
theme(legend.position="none")
gpp_plot

