ggplot2, l'axe ne montrant pas après l'utilisation de thème(l'axe.ligne=ligne de l'élément())

j'essaie de dessiner ce graphique en utilisant ggplot2 paquet, mais d'une façon ou d'une autre l'axe ne se montrera pas. les tiques sont là, mais pas la ligne de l'axe. J'ai utilisé le theme(axis.line=element_line()) la fonction, mais ça ne marcherait pas.

Voici mon code:

library(ggplot2)

ggplot(data = soepl_randsub, aes(x = year, y =satisf_org, group = id)) +
    geom_point() + geom_line() +ylab("Current Life Satisfaction") +theme_bw() +
    theme(plot.background = element_blank(),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank() ) +
    theme(panel.border= element_blank()) +
    theme(axis.line = element_line(color="black", size = "2")) 

Je ne suis pas sûr de ce qui a mal tourné. Voici le tableau.

enter image description here

21
demandé sur rawr 2016-03-07 01:17:54

2 réponses

le bug a été corrigé dans ggplot2 v2.2.0 Il n'est plus nécessaire de spécifier des lignes d'axe séparément.

je pense que c'est un bug dans ggplot2 v2.1.0. (Voir ce rapport de bogue et celui-ci.) Une solution consiste à définir les lignes de l'axe x et de l'axe y séparément.

  library(ggplot2)

  ggplot(data = mpg, aes(x = hwy, y = displ)) + 
  geom_point() + 
  theme_bw() + 
  theme(plot.background = element_blank(),
         panel.grid.major = element_blank(),
         panel.grid.minor = element_blank() )+
  theme(panel.border= element_blank())+
  theme(axis.line.x = element_line(color="black", size = 2),
        axis.line.y = element_line(color="black", size = 2))
48
répondu Sandy Muspratt 2017-01-05 07:48:43

Vous n'avez pas besoin de spécifier la taille de l'axe pour X et Y séparément. Lorsque vous spécifiez size= "2", R considère la valeur 2 comme un argument non numérique. Par conséquent, le paramètre axis-line est par défaut à 0 taille. Utilisez cette ligne de code:

ggplot(data = mpg, aes(x = hwy, y = displ)) + geom_point() +xlab("Date")+ylab("Value of Home")+theme_bw() +theme(plot.background = element_blank(),panel.grid.major = element_blank(),panel.grid.minor = element_blank()) + theme(panel.border= element_blank()) + theme(axis.line = element_line(color="black", size = 2))

axis_line hérite de ligne dans R, donc spécifier la taille est obligatoire pour les valeurs non-par défaut.

3
répondu vivek 2017-01-05 05:22:53