when I try to plot df I find NA in the barplot. I can't understand why.
Here is df
dput(df)
structure(list(Cancer.type = c(" BLCA", " BLCA", " BLCA", "BRCA",
"BRCA", "BRCA", "COAD", "COAD", "COAD", "ESCA", "ESCA", "ESCA",
"GBM", "GBM", "GBM", "KIRC", "KIRC", "KIRC", "LIHC", "LIHC",
"LIHC", "LUAD", "LUAD", "LUAD", "LUSC", "LUSC", "LUSC", "PRAD",
"PRAD", "PRAD", "STAD", "STAD", "STAD", "THCA", "THCA", "THCA",
"UCEC", "UCEC", "UCEC"), Number.of.genes = c(4L, 5L, 7L, 8L,
6L, 2L, 1L, 10L, 5L, 3L, 5L, 8L, 2L, 4L, 10L, 2L, 8L, 6L, 5L,
5L, 6L, 5L, 8L, 3L, 4L, 8L, 4L, 4L, 6L, 6L, 2L, 5L, 9L, 8L, 3L,
5L, 4L, 3L, 9L), Condition = c("Down ", "Up", "ns", "Down ",
"Up", "ns", "Down ", "Up", "ns", "Down ", "Up", "ns", "Down ",
"Up", "ns", "Down ", "Up", "ns", "Down ", "Up", "ns", "Down ",
"Up", "ns", "Down ", "Up", "ns", "Down ", "Up", "ns", "Down ",
"Up", "ns", "Down ", "Up", "ns", "Down ", "Up", "ns")), class = "data.frame", row.names = c(NA,
-39L))
Here is my script
ggplot(df,aes(fill = factor(Condition, levels = c('Down','Up','ns')),
y = Number.of.genes, x =Cancer.type))
geom_bar(position="stack", stat="identity") theme_bw()
theme(axis.text.x = element_text(size = 10, angle = 45, hjust = 1, colour = 'black'))
scale_fill_manual(values=c("seagreen2", "deepskyblue3",'goldenrod1'))
labs(fill = 'Condition', x = NULL)
Thanks for any help.
CodePudding user response:
In your Condition column, the Down actually has a trailing space. So you can do 3 things:
- remove the space from your data frame
df$Condition <- gsub(' ', '', df$Condition)
- Add the space in
levels()
ggplot(df,aes(fill = factor(Condition, levels = c('Down ','Up','ns'))
- Remove the
levelsargument
ggplot(df,aes(fill = factor(Condition)

