If the percentage of a taxon is <2, it is assigned to category "Other".
I1 == ASV152 (Lactobacillaceae    Leuconostoc    mesenteroides)
I2 == ASV1 (purple) (Pseudomonas)
I3 == ASV1 (purple)
M1 (I1, I2, I3)
M2 (I1, I2, I3, A101, A104)
  A101 == ASV1583
  A104 == ASV152
  
DISCARD COMMUNITIES == comm_c17, comm_C20

1 Community 1

I1 -> possible contamination. 
Sta, I2, I3, M1, M2 -> correct. 

1.1 Stabilization

df_plot <- df_filtered %>%
  filter(Sample %in% orden_deseado)
taxa<-unique(df_filtered$taxon)
paleta<-hue_pal()(length(taxa))
names(paleta)<-taxa



ggplot(df_plot, aes(x = factor(Sample, levels = orden_deseado), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
   geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  
  
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1), legend.position = "none" 
  ) +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

1.2 NS

lista_NS <- c(orden_deseado, NS)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_NS)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_NS), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

1.3 I1

lista_I1 <- c(orden_deseado, I1_5, I1_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I1)
paleta["ASV1"]<- "purple"
ggplot(df_plot, aes(x = factor(Sample, levels = lista_I1),
                    y = Count, fill = taxon)) +
  geom_col(position = "fill") +
   geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

1.4 I2

lista_I2 <- c(orden_deseado, I2_5, I2_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I2)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I2), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

1.5 I3

lista_I3 <- c(orden_deseado, I3_5, I3_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I3)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I3), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
   geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

1.6 M1

lista_M1 <- c(orden_deseado, M1_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_M1)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_M1), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

1.7 M2

lista_M2 <- c(orden_deseado, M2_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_M2)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_M2), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
    geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

2 Community 5

Sta -> correct. 
NS, I1, I2, I3, M1, M2 -> All perturbations converge to the same community composition. 
                      There are ASVs that are not dominant in the Sta, except for ASV10. 

2.1 Stabilization

df_plot <- df_filtered %>%
  filter(Sample %in% orden_deseado)

taxa<-unique(df_filtered$taxon)
paleta<-hue_pal()(length(taxa))
names(paleta)<-taxa


ggplot(df_plot, aes(x = factor(Sample, levels = orden_deseado), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

2.2 NS

lista_NS <- c(orden_deseado, NS)
df_plot <- df_filtered %>%
  filter(Sample %in% lista_NS)


ggplot(df_plot, aes(x = factor(Sample, levels = lista_NS), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  
  )

2.3 I1

lista_I1 <- c(orden_deseado, I1_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I1)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I1), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

2.4 I2

lista_I2 <- c(orden_deseado, I2_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I2)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I2), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

2.5 I3

lista_I3 <- c(orden_deseado, I3_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I3)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I3), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

2.6 M1

lista_M1 <- c(orden_deseado, M1_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_M1)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_M1), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

2.7 M2

lista_M2 <- c(orden_deseado, M2_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_M2)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_M2), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

3 Community 6

Sta -> correct. 
NS, I1 -> converge to the same community. 
I2, I3, M1, M2 -> look good. ASV1 shows high abundance. 

3.1 Stabilization

df_plot <- df_filtered %>%
  filter(Sample %in% orden_deseado)
taxa<-unique(df_filtered$taxon)
paleta<-hue_pal()(length(taxa))
names(paleta)<-taxa


ggplot(df_plot, aes(x = factor(Sample, levels = orden_deseado), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

3.2 NS

lista_NS <- c(orden_deseado, NS)
df_plot <- df_filtered %>%
  filter(Sample %in% lista_NS)
paleta["ASV1"]<- "purple"


ggplot(df_plot, aes(x = factor(Sample, levels = lista_NS), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

3.3 I1

lista_I1 <- c(orden_deseado, I1_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I1)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I1), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

3.4 I2

lista_I2 <- c(orden_deseado, I2_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I2)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I2), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
 geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

3.5 I3

lista_I3 <- c(orden_deseado, I3_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I3)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I3), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

3.6 M1

lista_M1 <- c(orden_deseado, M1_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_M1)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_M1), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

3.7 M2

lista_M2 <- c(orden_deseado, M2_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_M2)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_M2), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
 geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

4 Community 8

Sta -> correct. 
NS -> correct. 
I1 -> possible contamination by ASV1. 
I2, I3, M1, M2 -> High heritability but strong shift in community composition. All converge to the same community. 
                  ASV1 remains at low abundance; it hasn´t stablished but alters the community dynamics. 
                  ASV6 (Pseudomonas) becomes dominant. 
                  High heritability ≠ High robustness
                  Functional convergence? 
                  

4.1 Stabilization

df_plot <- df_filtered %>%
  filter(Sample %in% orden_deseado)
taxa<-unique(df_filtered$taxon)
paleta<-hue_pal()(length(taxa))
names(paleta)<-taxa
paleta["ASV1"]<- "purple"


ggplot(df_plot, aes(x = factor(Sample, levels = orden_deseado), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

4.2 NS

lista_NS <- c(orden_deseado, NS)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_NS)


ggplot(df_plot, aes(x = factor(Sample, levels = lista_NS), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
 geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

4.3 I1

lista_I1 <- c(orden_deseado, I1_5, I1_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I1)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I1), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

4.4 I2

lista_I2 <- c(orden_deseado, I2_5, I2_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I2)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I2), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

4.5 I3

lista_I3 <- c(orden_deseado, I3_5, I3_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I3)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I3), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

4.6 M1

lista_M1 <- c(orden_deseado, M1_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_M1)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_M1), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

4.7 M2

lista_M2 <- c(orden_deseado, M2_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_M2)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_M2), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

5 Community 9

Sta -> correct. 
NS, I1, I2, I3, M1, M2 -> All perturbations converge to the same community composition. 
                          High heritability. 

5.1 Stabilization

df_plot <- df_filtered %>%
  filter(Sample %in% orden_deseado)
taxa<-unique(df_filtered$taxon)
paleta<-hue_pal()(length(taxa))
names(paleta)<-taxa
paleta["ASV1"] <-"purple"

ggplot(df_plot, aes(x = factor(Sample, levels = orden_deseado), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

5.2 NS

lista_NS <- c(orden_deseado, NS)
df_plot <- df_filtered %>%
  filter(Sample %in% lista_NS)



ggplot(df_plot, aes(x = factor(Sample, levels = lista_NS), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

5.3 I1

lista_I1 <- c(orden_deseado, I1_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I1)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I1), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

5.4 I2

lista_I2 <- c(orden_deseado, I2_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I2)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I2), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

5.5 I3

lista_I3 <- c(orden_deseado, I3_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I3)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I3), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

5.6 M1

lista_M1 <- c(orden_deseado, M1_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_M1)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_M1), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

5.7 M2

lista_M2 <- c(orden_deseado, M2_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_M2)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_M2), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
 geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

6 Community 11

Sta -> not stable. 
NS, I1 -> converge to the same community composition. 
I2, I3, M1, M2 -> All pertubation converge to the same community. ASV1 dominant. 

6.1 Stabilization

df_plot <- df_filtered %>%
  filter(Sample %in% orden_deseado)
taxa<-unique(df_filtered$taxon)
paleta<-hue_pal()(length(taxa))
names(paleta)<-taxa
paleta["ASV1"]<-"purple"


ggplot(df_plot, aes(x = factor(Sample, levels = orden_deseado), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

6.2 NS

lista_NS <- c(orden_deseado, NS)
df_plot <- df_filtered %>%
  filter(Sample %in% lista_NS)


ggplot(df_plot, aes(x = factor(Sample, levels = lista_NS), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

6.3 I1

lista_I1 <- c(orden_deseado, I1_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I1)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I1), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

6.4 I2

lista_I2 <- c(orden_deseado, I2_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I2)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I2), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

6.5 I3

lista_I3 <- c(orden_deseado, I3_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I3)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I3), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

6.6 M1

lista_M1 <- c(orden_deseado, M1_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_M1)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_M1), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

6.7 M2

lista_M2 <- c(orden_deseado, M2_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_M2)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_M2), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  
  )

7 Community 13

Sta -> correct. 
NS -> ?
I1 -> possible contamination by ASV1. 
I2, I3, M1, M2 -> look good. 

7.1 Stabilization

df_plot <- df_filtered %>%
  filter(Sample %in% orden_deseado)
taxa<-unique(df_filtered$taxon)
paleta<-hue_pal()(length(taxa))
names(paleta)<-taxa
paleta["ASV1"]<- "purple"


ggplot(df_plot, aes(x = factor(Sample, levels = orden_deseado), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

7.2 NS

lista_NS <- c(orden_deseado, NS)
df_plot <- df_filtered %>%
  filter(Sample %in% lista_NS)



ggplot(df_plot, aes(x = factor(Sample, levels = lista_NS), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

7.3 I1

lista_I1 <- c(orden_deseado, I1_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I1)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I1), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

7.4 I2

lista_I2 <- c(orden_deseado, I2_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I2)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I2), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

7.5 I3

lista_I3 <- c(orden_deseado, I3_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I3)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I3), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

7.6 M1

lista_M1 <- c(orden_deseado, M1_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_M1)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_M1), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

7.7 M2

lista_M2 <- c(orden_deseado, M2_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_M2)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_M2), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

8 Community 17

8.1 Stabilization

df_plot <- df_filtered %>%
  filter(Sample %in% orden_deseado)
taxa<-unique(df_filtered$taxon)
paleta<-hue_pal()(length(taxa))
names(paleta)<-taxa
paleta["ASV1"]<-"purple"

ggplot(df_plot, aes(x = factor(Sample, levels = orden_deseado), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

8.2 NS

lista_NS <- c(orden_deseado, NS)
df_plot <- df_filtered %>%
  filter(Sample %in% lista_NS)



ggplot(df_plot, aes(x = factor(Sample, levels = lista_NS), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

8.3 I1

lista_I1 <- c(orden_deseado, I1_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I1)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I1), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

8.4 I2

lista_I2 <- c(orden_deseado, I2_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I2)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I2), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

8.5 I3

lista_I3 <- c(orden_deseado, I3_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I3)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I3), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

8.6 M1

lista_M1 <- c(orden_deseado, M1_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_M1)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_M1), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

8.7 M2

lista_M2 <- c(orden_deseado, M2_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_M2)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_M2), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

9 Community 18

Sta -> not stable. 
NS, I1 -> converge to the same community composition. NS last day has different ASVs
I2-> even ASV1 established in the community but there is no secretion of pyoverdine. 
I3, M1, M2 -> converge to the same community. ASV1 dominant. 

9.1 Stabilization

df_plot <- df_filtered %>%
  filter(Sample %in% orden_deseado)
taxa<-unique(df_filtered$taxon)
paleta<-hue_pal()(length(taxa))
names(paleta)<-taxa
paleta["ASV1"]<-"purple"

ggplot(df_plot, aes(x = factor(Sample, levels = orden_deseado), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

9.2 NS

lista_NS <- c(orden_deseado, NS)
df_plot <- df_filtered %>%
  filter(Sample %in% lista_NS)



ggplot(df_plot, aes(x = factor(Sample, levels = lista_NS), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

9.3 I1

lista_I1 <- c(orden_deseado, I1_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I1)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I1), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

9.4 I2

lista_I2 <- c(orden_deseado, I2_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I2)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I2), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

9.5 I3

lista_I3 <- c(orden_deseado, I3_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I3)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I3), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

9.6 M1

lista_M1 <- c(orden_deseado, M1_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_M1)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_M1), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

9.7 M2

lista_M2 <- c(orden_deseado, M2_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_M2)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_M2), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

10 Community 20

10.1 Stabilization

df_plot <- df_filtered %>%
  filter(Sample %in% orden_deseado)
taxa<-unique(df_filtered$taxon)
paleta<-hue_pal()(length(taxa))
names(paleta)<-taxa
paleta["ASV1"]<-"purple"

ggplot(df_plot, aes(x = factor(Sample, levels = orden_deseado), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

10.2 NS

lista_NS <- c(orden_deseado, NS)
df_plot <- df_filtered %>%
  filter(Sample %in% lista_NS)


ggplot(df_plot, aes(x = factor(Sample, levels = lista_NS), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

10.3 I1

lista_I1 <- c(orden_deseado, I1_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I1)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I1), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

10.4 I2

lista_I2 <- c(orden_deseado, I2_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I2)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I2), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

10.5 I3

lista_I3 <- c(orden_deseado, I3_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I3)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I3), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

10.6 M1

lista_M1 <- c(orden_deseado, M1_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_M1)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_M1), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
 geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

10.7 M2

lista_M2 <- c(orden_deseado, M2_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_M2)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_M2), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

11 Community 21

Sta -> correct. 
NS -> ?

I1, I2, I3, M1, M2 ->  converge to the same community. ASV22 (Enterobacter) 

11.1 Stabilization

df_plot <- df_filtered %>%
  filter(Sample %in% orden_deseado)
taxa<-unique(df_filtered$taxon)
paleta<-hue_pal()(length(taxa))
names(paleta)<-taxa
paleta["ASV1"]<-"purple"


ggplot(df_plot, aes(x = factor(Sample, levels = orden_deseado), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

11.2 NS

lista_NS <- c(orden_deseado, NS)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_NS)


ggplot(df_plot, aes(x = factor(Sample, levels = lista_NS), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
 geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

11.3 I1

lista_I1 <- c(orden_deseado, I1_5, I1_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I1)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I1), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

11.4 I2

lista_I2 <- c(orden_deseado, I2_5, I2_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I2)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I2), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

11.5 I3

lista_I3 <- c(orden_deseado, I3_5, I3_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_I3)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_I3), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

11.6 M1

lista_M1 <- c(orden_deseado, M1_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_M1)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_M1), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
 geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )

11.7 M2

lista_M2 <- c(orden_deseado, M2_6)

df_plot <- df_filtered %>%
  filter(Sample %in% lista_M2)

ggplot(df_plot, aes(x = factor(Sample, levels = lista_M2), y = Count, fill = taxon)) +
  geom_col(position = "fill") +
  geom_text(
    aes(label = taxon, y = Count),
    position = position_fill(vjust = 0.5),
    color = "black",       # puedes usar "white" si el fondo es oscuro
    size = 2,
    show.legend = FALSE    # evita que aparezca en la leyenda también
  ) +
  scale_y_continuous(labels = percent_format()) +
  scale_fill_manual(values=paleta)+
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1),
    legend.position = "none") +
  labs(
    x    = "Muestra",
    y    = "Porcentaje de lecturas",
    fill = "Taxon (nivel_valor)"
  )