105 votes

Comment puis-je supprimer les lignes de grille verticales dans un graphique ggplot2 ?

Je suis en train de construire un diagramme à barres pour lequel les barres suffisent comme indications de placement horizontal (x), donc j'aimerais éviter de dessiner les lignes de grille verticales superflues.

Je comprends comment styliser les lignes de grille mineures et majeures dans opts(), mais je n'arrive pas, pour la vie de moi, à comprendre comment supprimer uniquement les lignes de grille verticales.

library(ggplot2)

data <- data.frame(x = 1:10, y = c(3,5,2,5,6,2,7,6,5,4))

ggplot(data, aes(x, y)) +
  geom_bar(stat = 'identity') +
  theme(
    panel.grid.major = element_line(size = 0.5, colour = '#1391FF'),
    panel.grid.minor = element_line(colour = NA),
    panel.background = element_rect(colour = NA),
    axis.ticks = element_line(colour = NA)
  )

À ce stade, il semblerait que je vais devoir supprimer toutes les lignes de grille et ensuite les redessiner avec geom_hline(), ce qui semble un peu contraignant (aussi, il n'est pas tout à fait clair comment je peux trouver les positions des lignes de repère/majeures pour les donner à geom_hline().)

Toute suggestion serait appréciée!

2voto

SHKT Points 148

Copier ma réponse d'un fil de discussion connexe,

Pour les personnes cherchant cela en 2020, j'ai trouvé une solution sous la forme de la fonction removeGrid de la bibliothèque ggExtra ici rdrr.io > removeGrid

Je l'ai testé avec succès avec ggplot2 version 3.3.0 et ggExtra version 0.9, me donnant des graduations d'axe sans les lignes de grille.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X