I am trying to create a plot in R using ggplot2.
This is the code and figure that I am getting:
ggplot(df, aes(x=rel, y=durationHours_mean, fill=newCategory))+
geom_bar(stat='identity')+
scale_fill_manual(values=cols,labels=c('preb','b','i-b','rel','test','i-test'))+
facet_grid('newCategory') + ylab("Duration") + xlab("Rel") + coord_flip()+
theme(
legend.position='none',
panel.grid.major = element_line(colour = "grey95"),
panel.grid.minor = element_blank(),
panel.background = element_blank(),
axis.line.x = element_line(colour = "black"),
axis.line.y = element_line(colour = "black"),
axis.text = element_text(colour = "black"),
axis.text.x = element_text(size = 12),
axis.text.y = element_text(size = 12),
axis.title = element_text(size = 17),
strip.text.x = element_text(size = 17),
strip.text.y = element_text(size=12,angle = 360),
strip.background = element_blank()
)
Current figure:
However, I would like to get the following figure. I need to bring the facets title to the middle of x-axis tick, and move the x-axis tick to the right of the bar as shown in the figure. I tried with scaall_fill_discrete but it does it per facet, and I would like to get it done across facets. Any idea or approach on how to achieve this?
The data set is:
df<-structure(list(rel = c("1a", "1a", "1a", "1a",
"1a", "1a", "1b", "1b", "1b", "1b", "1b",
"1b", "2a", "2a", "2a", "2a", "2a", "2a",
"3a", "3a", "3a", "3a", "3a", "3a"),
newCategory = c("b", "ib", "it",
"preb", "rel", "test", "b", "ib",
"it", "preb", "rel", "test", "b",
"ib", "it", "preb", "rel",
"test", "b", "ib", "it",
"preb", "rel", "test"), durationHours_mean = c(0.092396019,
0.010302845, 0.035852273, 0.136273024, 0.279052288, 0.543560606,
0.154655266, 0.004263029, 0.20724439, 0.154030945, 0.366705574,
0.789809989, 0.237409639, 0.03785531, 0.099604529, 0.227135207,
0.432482151, 3.18171129, 0.157553476, 0.019273247, 0.522296866,
0.255998217, 0.514912359, 1.530390671)), row.names = c(NA,
-24L), class = c("spec_tbl_df", "tbl_df", "tbl", "data.frame"
), spec = structure(list(cols = list(rel = structure(list(), class =
c("collector_character",
"collector")), newCategory = structure(list(), class = c("collector_character",
"collector")), durationHours_mean = structure(list(), class = c("collector_double",
"collector")), clusterName = structure(list(), class = c("collector_character",
"collector"))), default = structure(list(), class = c("collector_guess",
"collector")), skip = 1L), class = "col_spec"))


