library(psych);library(cluster);library(FactoMineR);require(RcmdrMisc);require(ggplot2)
require(factoextra);require(gridExtra);require(MVA);library(patchwork);library(readxl)
library(FSA);library(doBy);library(dplyr);library(tidyr);library(zoo);library(plotly)
library(ggpmisc)
load("C:/Users/User/Mi unidad/German Bertola/graf.RData")
######GRAFICO VARIOS#################################################
# 1) de cada perfil: Para las 3 muestras (cuando haya: distal-frontal-medano, sino hacela para las muestras que haya de ese año) 
# necesito una serie de tiempo de cada variable (Phi 1%, media, mediana, DSTD, asimetria y Kurtosis)
#Los de media, mediana y phi 1% son los que llevan el eje Y con los negativos arriba y los positivos abajo

#Playa DISTAL
data_D <- Todos |>
  select(Parametros,Year,matches("D$")) |>
  pivot_longer(cols =-c(Parametros,Year), names_to = "Perfiles", values_to = "Estadisticos")
data_D$Perfiles<-as.factor(data_D$Perfiles)
for (i in c(1,2,3,4,8,9)){
  D<-ggplot(data_D[data_D$Parametros == levels(data_D$Parametros)[i],], aes(x = Year, y = Estadisticos)) +
    geom_point(aes(color = Perfiles), size = 2) +
    ggtitle("Playa Distal",levels(data_D$Parametros)[i])+
    geom_smooth(method = "lm", se = FALSE, color = "black") +
    stat_poly_eq(
      aes(label = paste(..eq.label.., ..rr.label.., sep = "~~~")),
      formula = y ~ x,
      parse = TRUE,
      size = 2,
      label.x.npc = "left",   # posición horizontal de la etiqueta
      label.y.npc = "bottom"     # posición vertical de la etiqueta
    ) +
    facet_wrap(~Perfiles, ncol = 4) +
    theme_minimal() +
    theme(
      panel.grid.minor.x = element_blank(),
      panel.grid.major.x = element_line(color = "grey80"),
      panel.grid.minor.y = element_blank()
    )
  niveles_invertidos <- c("1s", "Med", "Mu")
 if (levels(data_D$Parametros)[i] %in% niveles_invertidos) {
    D <- D + scale_y_reverse()
  }
print(D)
  }

#################################
#Playa FRONTAL
data_F <- Todos |>
  select(Parametros,Year,matches("F$")) |>
  pivot_longer(cols =-c(Parametros,Year), names_to = "Perfiles", values_to = "Estadisticos")
data_F$Perfiles<-as.factor(data_F$Perfiles)
for (i in c(1,2,3,4,8,9)){
  F<-ggplot(data_F[data_F$Parametros == levels(data_F$Parametros)[i],], aes(x = Year, y = Estadisticos)) +
    geom_point(aes(color = Perfiles), size = 2) +
    ggtitle("Playa Frontal",levels(data_F$Parametros)[i])+
    geom_smooth(method = "lm", se = FALSE, color = "black") +
    stat_poly_eq(
      aes(label = paste(..eq.label.., ..rr.label.., sep = "~~~")),
      formula = y ~ x,
      parse = TRUE,
      size = 2,
      label.x.npc = "left",   # posición horizontal de la etiqueta
      label.y.npc = "bottom"     # posición vertical de la etiqueta
    ) +
    facet_wrap(~Perfiles, ncol = 4) +
    theme_minimal() +
    theme(
      panel.grid.minor.x = element_blank(),
      panel.grid.major.x = element_line(color = "grey80"),
      panel.grid.minor.y = element_blank()
    )
  niveles_invertidos <- c("1s", "Med", "Mu")
  if (levels(data_F$Parametros)[i] %in% niveles_invertidos) {
    F <- F + scale_y_reverse()
  }
  print(F)
}

tablaF<-xtabs(Estadisticos~Year+Perfiles, data=data_F[data_F$Parametros=="Mu",])
#Playa Medano
data_M <- Todos |>
  select(Parametros,Year,matches("M$")) |>
  pivot_longer(cols =-c(Parametros,Year), names_to = "Perfiles", values_to = "Estadisticos")
data_M$Perfiles<-as.factor(data_M$Perfiles)
for (i in c(1,2,3,4,8,9)){
  M<-ggplot(data_M[data_M$Parametros == levels(data_M$Parametros)[i],], aes(x = Year, y = Estadisticos)) +
    geom_point(aes(color = Perfiles), size = 2) +
    ggtitle("Playa Medano",levels(data_M$Parametros)[i])+
    geom_smooth(method = "lm", se = FALSE, color = "black") +
    stat_poly_eq(
      aes(label = paste(..eq.label.., ..rr.label.., sep = "~~~")),
      formula = y ~ x,
      parse = TRUE,
      size = 2,
      label.x.npc = "left",   # posición horizontal de la etiqueta
      label.y.npc = "bottom"     # posición vertical de la etiqueta
    ) +
    facet_wrap(~Perfiles, ncol =4) +
    theme_minimal() +
    theme(
      panel.grid.minor.x = element_blank(),
      panel.grid.major.x = element_line(color = "grey80"),
      panel.grid.minor.y = element_blank()
    )
 niveles_invertidos <- c("1s", "Med", "Mu")
  if (levels(data_M$Parametros)[i] %in% niveles_invertidos) {
    M <- M + scale_y_reverse()
  }
  print(M)
}