【发布时间】:2017-07-04 10:41:24
【问题描述】:
我有一个使用 ggplot2 创建的图,我正在尝试修改一些次要网格线。这是当前版本:
library(tidyverse)
data(starwars)
starwars = starwars %>%
filter(!is.na(homeworld), !is.na(skin_color)) %>%
mutate(tatooine = factor(if_else(homeworld == "Tatooine", "Tatooine Native", "Other Native")),
skin_color = factor(skin_color))
ggplot(starwars, aes(birth_year, skin_color)) +
geom_point(aes(color = gender), size = 4, alpha = 0.7, show.legend = FALSE) +
facet_grid(tatooine ~ ., scales = "free_y", space = "free_y", switch = "y") +
theme_minimal() +
theme(
panel.grid.major.x = element_blank(),
panel.grid.major.y = element_blank(),
axis.title.x = element_blank(),
axis.title.y = element_blank(),
strip.placement = "outside",
strip.background = element_rect(fill="gray90", color = "white"),
) +
geom_hline(yintercept = seq(0, length(unique(starwars$skin_color))) + .5, color="gray30")
Y轴是一个因素,使用了一个分面网格,每个网格中的类别数量是奇数。我使用 geom_hline 添加了一些次要网格线(我的理解是 panel.grid.minor 不适用于分类数据,即因子)。
我想删除下面以黄色突出显示的线条,然后在两个分面网格之间添加一条黑线(即当前以黄色突出显示的双线所在的位置)。
有什么办法吗?我宁愿避免对任何行的位置进行硬编码,以防数据发生变化。谢谢。
【问题讨论】: