2023, Happy New Year !
Currently, I am trying to draw a taxa bar plot using "ggplot2" package.
Actually, my data aligned by "Day" factor.
However, after that I want to align taxa order by LDA score ascend.
As you can see in my result figure, it did not aligned LDA score value.
Please help my code.
I should have used the "Reprex" package, however, it did not work with some errors. Therefore, I made my code a little messy.
Thank you for the expert's help.
library(ggplot2)
library(tidyverse)
library(readxl)
library(reprex)
Lefse.result <- tibble::tribble(
~Pathway, ~LogMaxMean, ~Class, ~LDA, ~pValue, ~Day,
"f__Prevotellaceae_D1", 4.152, "Healthy", 4.248, 0.037, "D-1",
"g__Alloprevotella_D1", 4.152, "Healthy", 4.256, 0.037, "D-1",
"f__Butyricicoccaceae_D1", 4.759, "Healthy", 4.469, 0.046, "D-1",
"g__Butyricicoccus_D1", 4.759, "Healthy", 4.48, 0.046, "D-1",
"g__Ruminococcus_D1", 3.454, "Healthy", 4.78, 0.046, "D-1",
"f__Ruminococcaceae_D1", 5.02, "Healthy", 4.793, 0.046, "D-1",
"f__Rikenellaceae_D3", 3.233, "Healthy", 3.856, 0.046, "D-3",
"g__Alistipes_D3", 3.233, "Healthy", 3.863, 0.046, "D-3",
"f__Oscillospiraceae_D3", 3.485, "Healthy", 4.454, 0.046, "D-3",
"g__Pseudoflavonifractor_D3", 3.485, "Healthy", 4.482, 0.046, "D-3",
"g__Faecalibacterium_D3", 4.887, "Healthy", 4.608, 0.05, "D-3",
"g__Subdoligranulum_D3", 5.066, "Healthy", 4.784, 0.046, "D-3",
"f__Ruminococcaceae_D3", 5.301, "Healthy", 5.027, 0.05, "D-3",
"f__Enterococcaceae_D7", 5.087, "Rota", 4.673, 0.05, "D-7",
"g__Enterococcus_D7", 5.087, "Rota", 4.677, 0.05, "D-7"
)
Lefse.result <-read.csv("raw_data/Dall_lefse.csv", header=TRUE)
Lefse.result %>%
filter (LDA > 2.0) %>%
mutate (LDA = if_else(Class == "Healthy", -1*LDA, LDA),
Pathway = fct_reorder(Pathway, Day),
label_x = if_else(Class == "Healthy", 0.25, -0.25),
label_hjust = if_else(Class == "Healthy", 0, 1)) %>%
ggplot(aes(x=LDA, y=Pathway, fill=Class, width = 0.5)) +
geom_col() +
labs(y="Pathway", x="LDA Score (log 10)") +
scale_x_continuous(limits = c(-5.5, 5.5), breaks = seq(-5.5, 5.5, by=1)) +
scale_fill_manual(name=NULL,
breaks = c("Healthy", "Rota"),
labels = c("Healthy", "Rota"),
values = c ("#F47B0F", "#0101FF")) +
theme_classic()
123.pdf (64.7 KB)