Для того, чтобы расположить бары на каждом уровне сетки, используйте пакет drlib.Однако, похоже, что это работает для facet_wrap, но не для grid, так как найдены пустые бары
Есть ли способ избавиться от пустых баров?Подобные вопросы (не R): Как я могу удалить пустые бары из линейного графика dc.js, когда измерение пустое или пустое, на линейном графике появляется пустой бар
Удалите пустые столбцы из сгруппированного столбца
library(tidyverse)
library(drlib)
viz <- data.frame(type = c(rep("A",5),rep("B",4)),
project = c("ABC","BCD","CDE","EFG","FGI","GIK","IKL","KLM","LMO"),
complexity = c(.8,.95,.6,.8,.9,.3,.7,.2,.6),
impact = c(1,.8,.7,.8,.9,.4,.8,.6,.5),
relevance = c(.8,.5,.7,.9,.1,.8,.7,.7,.8),
stringsAsFactors = F)
viz_lng <- viz %>%
gather(-c(1,2), key = category, value = importance)%>%
arrange(desc(importance))
ggplot(viz_lng[which(viz_lng$importance>0),],
aes(x = reorder_within(project, importance, category, ),
y= importance, group = project, fill = project)) +
geom_bar(stat="identity") +
scale_x_reordered() +
facet_grid(vars(category), vars(type), scales="free_x") +
guides(fill=FALSE) + theme_bw() +
theme(strip.text = element_text(size = 14),
axis.text.x = element_text(angle = 45, hjust = 1),
legend.title = element_blank(),
axis.text = element_text(size = 14),
axis.title = element_text(size = 14))
Ожидаемый результат будет иметь упорядоченные столбцы, но без пустых столбцов на каждом уровне сетки.