Как удалить пустые бары из facet_grid в ggplot? - PullRequest
0 голосов
/ 28 мая 2019

Для того, чтобы расположить бары на каждом уровне сетки, используйте пакет 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))

Ожидаемый результат будет иметь упорядоченные столбцы, но без пустых столбцов на каждом уровне сетки.

...