7
votes

R & GGPLot2: Comment obtenir des flèches sous l'étiquette de l'axe?


Je suis sur le point de comploter des rapports de cotes avec R / GGPLot2 et je souhaite ajouter deux flèches dessous ou à côté de l'étiquette X-Axe. On pointant à gauche, on pointant à droite, montrant une influence / croissante. J'ai essayé beaucoup de choses, comme Geom_Path, Geom_Line, sans grand succès. Ceci est mon code:

forest <- function(d, xlab="Odds Ratio", ylab="Influencing variables"){
require(ggplot2)
p <- ggplot(d, aes(x=ordered(x, levels=rev(x)), y=y, ymin=ylo, ymax=yhi)) +
geom_pointrange() +
geom_segment(aes(x = 0, xend = 0, y= 1, yend= 2)) +
coord_flip() +
geom_hline(aes(yintercept=1), lty=2) +
ylab(xlab) +
xlab(ylab) +
scale_y_log10() 
return(p)
}
##Test Data
data <- data.frame( x   = c("A","B","C","D","E","F","G","H","I"),
                y   = c(1.782,0.136,0.978,0.645,0.518,1.474,0.855,0.673,0.369))
data <- transform(data, ylo = (0.719,0.046,0.945,0.295,0.188,0.577,0.407,0.310,0.145), 
        yhi = c(4.420,0.398,1.012,1.411,1.424,3.768,1.798,1.460,0.940))
forest(data)


0 commentaires

3 Réponses :


2
votes

Je fais un peu de devinez sur ce que vous voulez, exactement, car je ne suis pas sûr de ce que vous essayiez avec geom_segment , que cela faisait partie de vos données, ou une tentative de créer une flèche. Mais vous pouvez construire sur geom_segment pour obtenir quelque chose comme ce que vous décrivez: xxx

 entrer la description de l'image ici

Notez que j'ai une grande partie du positionnement, vous voudrez probablement bricoler avec ces valeurs pour obtenir ce que vous voulez ou que vous puissiez Essayez de les choisir de manière programmatique en fonction de vos données.


2 commentaires

Merci pour ton aide! Cela me rapproche de ce dont j'ai besoin. Mon intention était de tracer ces deux flèches sous la "Y". Mais peut-être que cela suffit.


@MARC - Les trucs de dessin à l'extérieur de la région de traçage sont techniquement possibles, mais compliqués, exigeant que vous soyez en désordre avec la grille package . Je dis souvent aux gens que des annotations personnalisées inhabituelles comme celle-ci, c'est souvent plus rapide / plus facile de simplement modifier l'image après le fait d'un éditeur d'image comme Illustrator ou quelque chose.



11
votes

C'est un assez ancien poste, mais je pensais que je partagerais une autre option pour quiconque qui trébuche sur cela.

J'ai une situation qui nécessite vraiment que j'ai vraiment des flèches à l'extérieur de la région du complot (et ne vous souciez pas de impliquer grille ). Comme indiqué ci-dessous, l'utilisation d'expressions et de symboles peut être une bonne option pour certains: xxx

 Entrez la description de l'image ici

Les modifications thématiques ne sont pas absolument nécessaires mais vous voudrez probablement augmenter la taille des flèches au moins un peu.

Par défaut, la fonction () prend des codes de symbole Adobe qui sont contourts dans ce document .

Si vous souhaitez ajouter du texte aux étiquettes (en ajoutant simplement L'expression le rendrait probablement trop gros), les suivants devraient vous aider à démarrer: xxx


0 commentaires

14
votes

Ceci peut facilement être fait en utilisant une annotation mathématique dans l'expression R (x <-> y) . Une table des options disponibles peut être trouvée ici . Expression permet également de latex comme des symboles mathématiques. xxx

 y compris les flèches dans les étiquettes de parcelle


1 commentaires

Lien est cassé, ici est une version de travail (ou Google "Annotation mathématique dans R")