Geomtext (ggplot2) : Ajouter du texte sur un histogramme

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

Luca Niang
Messages : 26
Enregistré le : 01 Avr 2012, 10:41

Geomtext (ggplot2) : Ajouter du texte sur un histogramme

Messagepar Luca Niang » 22 Fév 2019, 16:22

Coucou,
J'ai créé un histogramme reprenant les médianes de séries. Je souhaiterai simplement ajouter le libellé de la mediane au dessus de mes barres.

Code : Tout sélectionner

ggplot(pervalf,aes(reorder(pervalf$epci, pervalf$a_acquereur, median , na.rm=T), y=a_acquereur,fill=epci)) + geom_boxplot(varwidth = TRUE, alpha=0.2) + xlab("EPCI") + ylab("Âge des acquéreurs") + theme(axis.text.x = element_text(angle = 90, hjust = 1))+ guides(fill=FALSE) + labs(title="Age des acquéreurs selon l'EPCI")


Image

En faisant ce code, j'obtiens bien les médianes pour chaque epci. Ceci dit quand je mets ceci dans le geom_text, je n'ai pas le même nombre d'argument, car j'ai une EPCI avec un nombre vide

Code : Tout sélectionner

sort(tapply(pervalf$distance, pervalf$epci, median,na.rm=TRUE)


Comment faire ? :)

Merci !

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

Re: Geomtext (ggplot2) : Ajouter du texte sur un histogramme

Messagepar Mickael Canouil » 25 Fév 2019, 10:04

Bonjour,

Votre code, ne correspond pas à l'image et n'est pas reproductible.

"Qu'est-ce qu'un code reproductible ?" => viewtopic.php?f=1&t=7638
"Comment insérer des données dans un message" => viewtopic.php?f=1&t=3302

Un champ "aesthetics" ne devrait pas contenir de "$", surtout quand l'objet est fournit via l'argument "data" de ggplot2.

Sinon, la réponse est ici: https://www.google.com/search?q=histogram+label+ggplot2

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

Luca Niang
Messages : 26
Enregistré le : 01 Avr 2012, 10:41

Re: Geomtext (ggplot2) : Ajouter du texte sur un histogramme

Messagepar Luca Niang » 25 Fév 2019, 11:23

Je ne comprends pas vraiment ce qui est expliqué dans le lien vers google.

Voici un code reproductible

Code : Tout sélectionner

library(datasets)
ggplot(mtcars,aes(reorder(mtcars$am, mtcars$wt, median , na.rm=T), y=wt,fill=am)) + stat_summary(fun.y = "median", geom = "bar") + xlab("Manuel Auto") + ylab("Poids médian ") + theme(axis.text.x = element_text(angle = 90, hjust = 1))+ guides(fill=FALSE) + labs(title="Poids médian selon manuel/automatique")


Voici ce que celà me donne

Image

L'idée serait simplement d'afficher les médianes au-dessus du texte. J'arrive à afficher l'ensemble des données de la série... mais pas la médiane

Merci beaucoup :(
Excusez mon niveau pourri en R :(

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

Re: Geomtext (ggplot2) : Ajouter du texte sur un histogramme

Messagepar Mickael Canouil » 25 Fév 2019, 15:27

Un exemple pour être véritablement reproductible nécessite aussi les packages.
La solution: https://stackoverflow.com/questions/157 ... servations

Un exemple reproductible d'une solution ci-après.
Notez au passage et comme dit dans mon premier message, l'absence de "$" dans le code du ggplot.

Code : Tout sélectionner

library(tidyverse)

label_median <- function(y) {
  tibble::tibble(
    y = median(y, na.rm = TRUE),
    label = round(y, digits = 3)
  )
}
ggplot(
  data = mtcars,
  mapping = aes(x = reorder(am, wt, median, na.rm = TRUE), y = wt, fill = am)
) +
  stat_summary(fun.y = "median", geom = "bar") +
  stat_summary(fun.data = label_median, geom = "text", vjust = 0) +
  theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
  guides(fill = FALSE) +
  labs(
    title = "Poids médian selon manuel/automatique",
    x = "Manuel Auto",
    y = "Poids médian"
  )

Image

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

Luca Niang
Messages : 26
Enregistré le : 01 Avr 2012, 10:41

Re: Geomtext (ggplot2) : Ajouter du texte sur un histogramme

Messagepar Luca Niang » 26 Fév 2019, 14:28

Merci beaucoup Mickael, je vais pouvoir adapter ceci à mon propre code :)

Ok, j'ai compris qu'il n'y avait en effet pas besoin d'utiliser les $ dans le code ggplot.
J'avais en effet oublier de mentionner le package permettant d'installer ggplot2 dans mon code

Merci encore,
Sujet résolu


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité