Je n’arrive pas à résoudre le problème suivant.
Je dispose d'une base de données simple (Nb Plot;Crop type; Date;Height;Growth Stage) que je re-manipule pour calculer une moyenne et écart type. Le code est ci-dessous:
Code : Tout sélectionner
library(ggplot2)
library(xts)
library(dplyr)
library(scales)
#Load data set
data <- as.data.frame(read.csv("xx",sep=";",header=TRUE))
attach(data)
data$Date<-as.POSIXct(data$Date,format="%d-%m-%Y",tz="UTC")
#Calculate mean and standard error
df <- data %>%
group_by(Crop.type,Date,Growth.stage) %>%
summarise(mean = mean(Height),
std = sd(Height))
Ensuite, je souhaite obtenir un graphique avec des limites en x et des barres verticales à différentes dates. Et ensuite, je plot mon graphique en utilisant la fonction ggplot.
Code : Tout sélectionner
#Xlimits et barre verticales
lims <- as.POSIXct(strptime(c("2018-05-01","2018-09-01"), format = "%Y-%m-%d"))
first_harvest <- as.POSIXct(strptime(c("2018-06-21"), format = "%Y-%m-%d"))
Second_harvest <- as.POSIXct(strptime(c("2018-08-215"), format = "%Y-%m-%d"))
#Plot
ggplot(df, aes(x =Date, y =mean,colour=Crop.type)) +
geom_point()+
geom_line()+
scale_x_datetime(breaks = date_breaks("10 days"),labels = date_format("%d/%m"),limits = lims)+
geom_text(aes(label=Growth.stage),hjust=0.5,vjust=-3,size=3)+
geom_errorbar(aes(ymax=df$mean+df$std,ymin=df$mean-df$std),width=1.6)+
labs(x = "Date", y="Crop height (cm)",title="Crop heigth & Growing stage - Average value")+
geom_vline(aes(xintercept=first_harvest)),linetype="dashed")+
geom_vline(aes(xintercept=Second_harvest))
J'obtiens le graphique que je veux mais impossible d'obtenir la légende pour mes deux lignes geom_vline! J'ai utilisé les fonction scale et guide mais rien n'apparait sur mon graphique et je crois que cela vient du fait que mon axe des x est au format POSIXct.
Est-ce que quelqu'un a déjà rencontre ce problème?
Merci d’avance pour votre aide.
Corentin