To jest kontynuacja od this question, in which I was trying to suppress the vertical gridlines.Jak mogę ukryć pionowe linie siatki na wykresie ggplot2, zachowując etykiety osi X?
Rozwiązaniem, dostarczonym przez learnr, było dodanie scale_x_continuous (breaks = NA), ale efekt uboczny polegał również na tłumieniu etykiet osi X. Jestem całkowicie szczęśliwy, mogąc napisać etykiety z powrotem ręcznie, ale nie jest dla mnie jasne, jak ustalić, gdzie powinny trafić etykiety.
Inną opcją jest wytłumienie wszystkich linii siatki (za pomocą opcji opts (panel.grid.major = theme_blank()) lub niektórych takich), a następnie powrót do głównych poziomych linii siatki. Znowu, problemem tutaj jest, jak dowiedzieć się, jakie są przerwy w działce do dostarczenia do geom_hline().
Więc zasadniczo, moi są następujące opcje:.
- zwalczaniu pionowe linie siatki i etykiet osi X (z wykorzystaniem scale_x_continuous (przerwy = na)) i dodać etykiety osi x powrotem w
- kresu wszelkim gridlines (za pomocą opts (panel.grid.major = theme_blank())) i dodać główne poziome linie siatki z powrotem za pomocą geom_hline().
Oto dwie opcje:
library(ggplot2)
data <- data.frame(x = 1:10, y = c(3,5,2,5,6,2,7,6,5,4))
# suppressing vertical gridlines and x-axis labels
# need to re-draw x-axis labels
ggplot(data, aes(x, y)) +
geom_bar(stat = 'identity') +
scale_x_continuous(breaks = NA) +
opts(
panel.grid.major = theme_line(size = 0.5, colour = '#1391FF'),
panel.grid.minor = theme_blank(),
panel.background = theme_blank(),
axis.ticks = theme_blank()
)
# suppressing all gridlines
# need to re-draw horizontal gridlines, probably with geom_hbar()
ggplot(data, aes(x, y)) +
geom_bar(stat = 'identity') +
scale_x_continuous(breaks = NA) +
opts(
panel.grid.major = theme_blank(),
panel.grid.minor = theme_blank(),
panel.background = theme_blank(),
axis.ticks = theme_blank()
)
Możesz użyć funkcji geom_text(), aby ręcznie dodać etykiety tyka osi X. – learnr