我正在使用ggplot制作一个瓷砖地图,如下所示。有两个问题:
1)如何扩展x轴限制以在x = 4处标记我的组?
2)如何自动在组之间放置水平线(即在1和2之间、2和3之间等),而不是手动指定y值?
require(tidyverse)
set.seed(1)
df <- data.frame(ID = as.character(c(1:50)),
Group = sample(1:8, 50, replace = T),
var1 = sample(c('Y', 'N'), 50, replace = T),
var2 = sample(c('Y', 'N'), 50, replace = T),
var3 = sample(c('Y', 'N'), 50, replace = T)) %>%
gather('var', 'y_n', var1:var3) %>%
arrange(-Group) %>%
mutate(ID = factor(ID, levels = unique(ID, ordered = T)))
ggplot(df, aes(var, ID, label = Group))+
geom_tile(aes(fill = y_n), color = 'white')+
scale_fill_manual(values = c('white', 'lightblue'))+
scale_x_discrete(expand = c(0, 0))+
geom_text(x = 3.5, hjust = 'right')
strip.text.y = element_text(angle = 0)
。2)查看此帖子以了解如何在分面之间仅绘制水平线:https://dev59.com/2V4b5IYBdhLWcg3wzUja。另外:这里不需要使用`aes(..., label = Group)`。 - Carlos Eduardo Lagostapanel.border()
对您不起作用,一个简单的解决方法是使用其中一个内置主题,它们默认包含面板边框(theme_bw()
和theme_linedraw()
具有黑色边框)。 - Jan Boyer