Текст оси X X для всех граней графика facet_grid
У меня та же проблема, что и этот пользователь: я хотел бы сделать график facet_grid
с дискретной осью х, и я бы хотел этикетки оси x должны быть записаны под каждой гранью, а не только под нижним рядом граней. Например:
# Drop some factor levels to make the plot smaller
diamondSub <- subset(diamonds, (cut=="Ideal" | cut=="Premium") &
(color=="E" | color=="I"))
# Note that scales="free_x" has no practical effect here
ggplot(diamondSub, aes(x=clarity, y=price)) +
geom_blank()+
geom_boxplot() +
facet_grid(cut~color, scales="free_x")
![enter image description here]()
Однако я бы предпочел не использовать решение из этого сообщения, которое должно было использовать facet_wrap
вместо facet_grid
, потому что я предпочитаю, чтобы facet_grid
маркировал текст полосы с одной переменной поверх столбцы и другую переменную по сторонам строк.
Есть ли способ получить метки по оси X под каждой гранью, когда все оси x на самом деле одинаковы, используя facet_grid
?
Ответы
Ответ 1
Вы можете вставить копию осей внутри файла gtable,
library(gtable)
g <- ggplotGrob(p)
# locate the panels
panels <- grep("panel", g$layout$name)
top <- unique(g$layout$t[panels])
# intersperse a copy of the bottom axes
all <- gtable:::rbind_gtable(gtable:::rbind_gtable(g[seq.int(min(top)), ],
g[max(top)+1,], "first"),
g[seq(min(top)+1, nrow(g)),], "first")
grid.newpage()
grid.draw(all)
![enter image description here]()