Entering edit mode
2.3 years ago
rohitsatyam102
▴
920
This blog post is dedicated to my mentor and people out there who are trying to make LDA Score plot or a normal bar chart as shown below. This bar chart contains legend flipped on the opposite sides of the bars unlike normal bar charts where the Y axis ticks are present on one side:
Data: Here I present a dummy data but in metagenomics data the first column is usually genus
and second column is LDA score
. I save it as Book3.xlsx
.
name | value |
---|---|
x | 4 |
y | 6 |
z | 9 |
t | 5 |
u | 2 |
v | -5 |
w | -4 |
m | -2 |
c | -2 |
b | -1 |
Code to make LDA Score bar chart
######### Loading libraries
library("dplyr")
library("ggplot2")
library(schoolmath)
library(ggtext)
########### Organising data
dummydf <- readxl::read_excel("Book3.xlsx")
dummydf$name <- as.factor(dummydf$name)
dummydf$class <- ifelse(is.positive(dummydf$value),"Positive","Negative")
dummydf$class <- as.factor(dummydf$class)
class(dummydf$name)
######Plotting LDA Score plot
ggplot(dummydf[order(dummydf$value),], aes(x = name, y = value)) +
geom_bar(aes(fill = class), stat = 'identity') +
coord_flip() +
geom_richtext(aes(y = 0, label = name, hjust = as.numeric(value > 0)),fill = NA, fontface="bold",label.color = NA) +
theme_minimal()+
theme(axis.text.y = element_blank(),
axis.ticks.y = element_blank(),axis.ticks = element_line(color="black", size = 0.3),
axis.title.y = element_blank(),legend.position = "top",
legend.justification = 0.05,text = element_text(face="bold",color="black",size = 15),
legend.title = element_blank(),
panel.grid.major.y = element_blank(),
panel.grid.minor.y = element_blank(),axis.line.x = element_line(color="black", size = 0.3),
panel.grid.major.x = element_line(colour = "grey80", linetype = "dashed"),
panel.grid.minor.x = element_blank())+scale_fill_manual(values = c( "turquoise1", "tan1"))+
scale_y_continuous(expression(log[10](italic("LDA score"))),
breaks = -10:10, limits = c(-10, 10))