Questo è un seguito da this question, in which I was trying to suppress the vertical gridlines.Come posso sopprimere le linee della griglia verticale in un grafico ggplot2 mantenendo le etichette dell'asse x?
La soluzione, come fornita da learnr, consisteva nell'aggiungere scale_x_continuous (pause = NA), ma ciò ha avuto l'effetto collaterale di sopprimere anche le etichette dell'asse x. Sono assolutamente felice di scrivere le etichette di nuovo a mano, ma non mi è chiaro come capire dove dovrebbero andare le etichette.
L'altra opzione è quella di sopprimere tutte le linee della griglia (utilizzando opts (panel.grid.major = theme_blank()) o alcune di esse) e quindi ritrarre solo le griglie orizzontali principali. Di nuovo, il problema qui è come capire quali sono le interruzioni nella trama da fornire a geom_hline().
Quindi, in sostanza, le mie opzioni sono:.
- reprimere linee verticali e le etichette dell'asse x (utilizzando scale_x_continuous (pause = NA)) e aggiungere le etichette dell'asse x indietro nel
- Sopprimere tutto Griglie (usando opts (panel.grid.major = theme_blank())) e aggiungendo le griglie orizzontali principali usando geom_hline().
Qui ci sono due opzioni:
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()
)
È possibile utilizzare geom_text() per aggiungere manualmente le etichette di graduazione sull'asse x. – learnr