2017-08-23 1 views
0

Je l'ensemble de données suivantes:ggplot2 enlever l'étiquette de l'axe

dput(head(active_clients)) 
structure(list(Date = structure(c(1422662400, 1425081600, 1427760000, 
1430352000, 1433030400, 1435622400), class = c("POSIXct", "POSIXt" 
), tzone = "UTC"), value = c(65139, 66615, 66669, 67081, 67277, 
67366), month = 1:6, year = c(2015L, 2015L, 2015L, 2015L, 2015L, 
2015L), year_month = c("1/15", "2/15", "3/15", "4/15", "5/15", 
"6/15"), year2 = c("15", "15", "15", "15", "15", "15")), .Names = c("Date", 
"value", "month", "year", "year_month", "year2"), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame")) 

Et je tracer le graphique linéaire/point suivant avec ggplot2.

t <- ggplot(active_clients) + 
    geom_point(aes(as.factor(year_month), 
       value), 
      size = 2, 
      color="deepskyblue4") + 
    geom_line(aes(as.factor(year_month), 
       value, 
       group = 1, alpha = 0.5), 
      color = "deepskyblue4") + 

    xlab("") + 
    ylab("") + 
    theme(legend.title = element_blank()) + 
    theme_minimal() 

ggplotly(t) 

Mais je n'arrive pas à retirer les étiquettes de l'axe x.

J'ai aussi essayé d'ajouter:

theme(legend.title = element_blank(), axis.text = element_blank()) 

Je ne sais pas ce que je fais mal.

Des indices?

Mise à jour

C'est l'intrigue que je reçois:

enter image description here

+0

Avez-vous vu ces messages similaires [1] (https://stackoverflow.com/questions/35090883/remove-all-of-x-axis-labels-in-ggplot), [2] (https: // stackoverflow.com/questions/6528180/ggplot2-plot-without-axes-legends-etc)? – Ashish

+0

oui, cela ne fonctionne pas dans mon cas. – Prometheus

+0

Votre problème provient d'appeler 'theme_minimal()' après avoir modifié le thème avec 'theme (axis.text = ...)'. Puisque 'theme_minimal()' est un thème complet, il écrase votre modification. Chaque fois que vous voulez modifier le thème d'un intrigue, mettez cette déclaration après les thèmes complets de votre appel. – Brian

Répondre

1

Pour enlever les étiquettes de l'axe x, vous devriez essayer d'utiliser axis.text.x=element_blank() dans le theme()

Retrait les étiquettes de l'axe des x:

ggplot(active_clients) + 
    geom_point(aes(as.factor(year_month), value), size = 2, color="deepskyblue4") + 
    geom_line(aes(as.factor(year_month), value, group = 1, alpha = 0.5), color = "deepskyblue4") + 
    theme_minimal()+ 
    theme(axis.text.x=element_blank()) 

enter image description here

+0

ça ne marche pas. Est-il possible que je doive supprimer les étiquettes deux fois, à la fois pour geom_point et geom_line? Et si oui, aucune idée comment? – Prometheus

+0

@Prometheus pouvez-vous fournir un exemple reproductible minimum pour l'erreur? – Ashish

+0

@Ashish Je viens de mettre à jour l'OP avec l'intrigue. Je ne reçois pas une erreur spécifique dans la fonction, c'est juste que le résultat n'est pas ce que j'attends. Comme je l'ai mentionné dans le post précédent, je crois que le problème d'étiquetage a quelque chose à voir avec l'utilisation de geom_point et de geom_line. Avec axis.text.x = element_blank(), je supprime probablement l'une des étiquettes. Je ne sais pas trop comment le faire pour le second. – Prometheus

1

Que diriez-vous de retirer l'étiquette axe des x et l'enregistrer comme un objet ggplot. Par la suite, enveloppez-le autour de ggplotly et il devrait faire l'affaire. Un exemple minimum reproductible est le suivant:

library(plotly) 
library(ggplot2) 
# create a ggplot object and remove the x-axis label 
bp <- ggplot(PlantGrowth, aes(x=group, y=weight)) + 
    geom_boxplot()+ 
    theme(axis.title.x=element_blank(), axis.text.x=element_blank(), 
         axis.ticks.x=element_blank()) 
# show the ggplot 
bp 
# create a ggplotly object from the ggplot object 
p<- ggplotly(bp) 
# show the ggplotly object 
p 

enter image description here

Je pense que cela répond clairement à votre question.