GGplot2 rajouter des legendes avec des exposants

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

Sylvain Bart
Messages : 6
Enregistré le : 30 Jan 2017, 15:13

GGplot2 rajouter des legendes avec des exposants

Messagepar Sylvain Bart » 13 Déc 2017, 13:18

Bonjour à tous,

Je suis bloqué dans ggplot2 :

Je souhaite rajouter une annotation sur mon graphique de type t^ns avec ns en exposant
la formule de base que j'utilise :
p5=p4+geom_text(x=0.7,y=34,label="t^ns",size=8);p5 #fonctionne mais ns n’apparaît pas en exposant

Le problème que je rencontre vient de label= , je n'arrive pas a placer une expression après...
p5=p4+geom_text(x=0.7,y=34,label=expression(t^ns),size=8);p5 #ce script ne fonctionne pas

Merci par avance si vous avez des idées,

Bne journée,

Sylvain

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: GGplot2 rajouter des legendes avec des exposants

Messagepar Pierre-Yves Berrard » 13 Déc 2017, 13:28

Bonjour

Et avec "quote" en lieu et place de "expression" ?
PY

Sylvain Bart
Messages : 6
Enregistré le : 30 Jan 2017, 15:13

Re: GGplot2 rajouter des legendes avec des exposants

Messagepar Sylvain Bart » 13 Déc 2017, 13:41

ça ne fonctionne pas non plus, ça me met le message d'erreur suivant :
Error: Aesthetics must be either length 1 or the same as the data (4): x, y, label, size

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

Re: GGplot2 rajouter des legendes avec des exposants

Messagepar Mickael Canouil » 14 Déc 2017, 13:58

Bonjour,

il y a un problème de fond ici, avant le problème de forme.
Par défaut, les geom_*, utilisent des "aesthetics" définies dans les couches précédentes du ggplot2 (ou la couche en cours).
Or ici, il s'agit d'une annotation, quelque-chose qui ne dépend donc pas d'un objet "data" fournie dans les couches du ggplot2.
Vous ne verrez pas la différence sur le graphique, mais "inherit.aes = TRUE", va dupliquer le label autant de fois qu'il y a de ligne dans "data".

En prime la solution pour l'utilisation d'expression dans les geom_* (pour les titres, axes, "expression" et "bquote" fonctionnent):

Code : Tout sélectionner

df <- data.frame(
   gp = factor(rep(letters[1:3], each = 10)),
   y = rnorm(30)
 )
 ds <- plyr::ddply(df, "gp", plyr::summarise, mean = mean(y), sd = sd(y))
     
ggplot(df, aes(gp, y)) +
    geom_point() +
    geom_text(x = 1.5, y = 0, label = "t^{ns}", inherit.aes = FALSE, size = 12, parse = TRUE)


Pour les annotations, je vous suggère de regarder dans la doc de ggplot2, il y a des fonctions (wrapper) prévues à cet effet:
http://ggplot2.tidyverse.org/reference/ ... nnotations

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

Sylvain Bart
Messages : 6
Enregistré le : 30 Jan 2017, 15:13

Re: GGplot2 rajouter des legendes avec des exposants

Messagepar Sylvain Bart » 20 Déc 2017, 14:02

Merci pour ces informations!!


Retourner vers « Questions en cours »

Qui est en ligne

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