ggplot2 et geom_bar : afficher les labels des catégories vides

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Gwenole Larvol
Messages : 3
Enregistré le : 13 Oct 2020, 15:38

ggplot2 et geom_bar : afficher les labels des catégories vides

Messagepar Gwenole Larvol » 16 Oct 2020, 13:57

Bonjour,
N'étant pas spécialiste (doctorant en didactique des langues), je vais essayer de d'énoncer clairement ma question. Toutes mes excuses si tout n’est pas clair...
À l'aide de la formule suivante j'ai produit un graph en barres qui concerne des fréquences en % de la variable NoCrsP.p selon 5 catégories (jamais - rarement - de temps en temps - très souvent - presque tout le temps) et indiquée pour chaque individu 1, 2, 3, 4 ou 5 dans ma matrice No_p:

Code : Tout sélectionner

ggplot(data = No_p, aes(x = NoCrsP.p)) + labs(x="Leçon en breton\navec l'enseignant", y="Pourcentage d'écoles") + theme_gray(base_size = 25, base_family = "serif") + geom_bar(aes(y = 100*(..count..)/sum(..count..))) + ylim(0, 100) + scale_x_continuous(breaks=c( 1, 2, 3, 4, 5),labels=c( "jamais", "rarement","de tps\nen tps", "très\nsouvent", "presque\ntout le\ntemps"))


Je suis très content de mon graph, sauf que les labels "jamais" et "rarement" qui ont pour fréquence "0" n'apparaissent pas sur l'axe horizontal, ce qui rend peu difficile la comparaison avec d'autres graphs du même type. Sauriez-vous comment faire apparaître sur un graph en barre les catégories de fréquence nulle avec ggplot?

Merci beaucoup pour votre aide !

Gwenole

Fred Santos
Messages : 233
Enregistré le : 11 Avr 2009, 10:00
Contact :

Re: ggplot2 et geom_bar : afficher les labels des catégories vides

Messagepar Fred Santos » 16 Oct 2020, 14:13

Bonjour,

Théoriquement, si "NoCrsP.p" est convenablement reconnu comme facteur, ajouter

Code : Tout sélectionner

+ scale_x_discrete(drop = FALSE)

devrait être suffisant. Dans votre cas il semblerait (?) au contraire que cette variable soit considérée comme numérique (pas sûr que ce soit la meilleure option pour ce type d'info dans R, d'ailleurs), mais il faudrait un extrait de code reproductible pour voir ça plus précisément.

Gwenole Larvol
Messages : 3
Enregistré le : 13 Oct 2020, 15:38

Re: ggplot2 et geom_bar : afficher les labels des catégories vides

Messagepar Gwenole Larvol » 19 Oct 2020, 08:56

Bonjour,
Merci beaucoup pour votre réponse.
Mes variables sont bien numériques (type échelle de Likert) car j'avais besoin de d'indicateurs numériques (moyenne, écart type,...).
Je ne maîtrise pas suffisamment R ou la programmation pour fournir un extrait de code reproductible (je me suis formé à R il y a un an et demi, j'ai produit tous mes graphiques à ce moment là et aujourd'hui je galère à essayer de les modifier:).
Voici les premières lignes de mon tableau de données: (désolé pour la présentation...)
Ec NoCrP.p NoCrE.p NoCrCP.p NoClP.p NoClE.p NoCrsP.p NoCrsE.p NoDE
Douarnenez 4 2 2 4 3 5 3 2
Plozeved 4 1 1 4 2 4 2 1
Saint Martin 2 1 1 3 1 4 2 1
Cleder 1 1 1 2 1 3 1 1
Scaer 4 1 1 5 3 5 4 1

Merci encore!

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Re: ggplot2 et geom_bar : afficher les labels des catégories vides

Messagepar Mickael Canouil » 19 Oct 2020, 09:30

Bonjour,

indépendamment du niveau en R, plusieurs messages "annonces" du forum sont disponibles, notamment en ce qui concerne les code reproductibles ou le partage de jeux de données.

Un code reproductible n'est rien d'autre qu'un code fonctionnel.

Code : Tout sélectionner

dta <- read.table(text = "Ec NoCrP.p NoCrE.p NoCrCP.p NoClP.p NoClE.p NoCrsP.p NoCrsE.p NoDE
Douarnenez 4 2 2 4 3 5 3 2
Plozeved 4 1 1 4 2 4 2 1
'Saint Martin' 2 1 1 3 1 4 2 1
Cleder 1 1 1 2 1 3 1 1
Scaer 4 1 1 5 3 5 4 1"
, sep = " ", header = TRUE)

library(ggplot2)
ggplot(data = dta) +
  geom_bar(
    mapping = aes(
      x = factor(
        x = NoCrsP.p, 
        levels 
= 1:5, 
        labels 
=  c("jamais", "rarement", "de tps\nen tps", "très\nsouvent", "presque\ntout le\ntemps")
      ),
      y = after_stat(count / sum(count))
    )
  ) +
  scale_x_discrete(drop = FALSE) +
  scale_y_continuous(limits = c(0, 1), labels = function(x) paste(* 100, "%")) +
  labs(= "Leçon en breton\navec l'enseignant", y = "Pourcentage d'écoles") +
  theme_gray(base_size = 25, base_family = "serif")

Image

Cordialement,
Mickaël
mickael.canouil.fr | rlille.fr

Gwenole Larvol
Messages : 3
Enregistré le : 13 Oct 2020, 15:38

Re: ggplot2 et geom_bar : afficher les labels des catégories vides

Messagepar Gwenole Larvol » 19 Oct 2020, 10:05

Merci infiniment !
ça a l'air si simple quand on maîtrise son sujet !
Désolé pour la mise en forme de la question (code reproductible et partage de jeux de données). Avec votre exemple je saurai le faire à l'avenir.
Cordialement,
Gwenole Larvol


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité