2017-10-13 6 views
0

J'ai un tracé avec des points qui se chevauchent et j'aimerais changer le groupe qui sera en haut.Modifier l'ordre d'affichage des facteurs de chevauchement des données

Veuillez vérifier cet exemple, je parviens à inverser a et b en termes de couleur et d'ordre dans la légende, avec rev() mais "b" est toujours au-dessus de "a". Toute solution?

Merci à l'avance

D.

library(ggplot2) 

mytable <- data.frame(x = rep(1:10, 2), 
      y = c(1:10, (1.1:10.1)), 
      var = factor(c(rep("a",10), rep("b",10))) 
     ) 

ggplot(mytable) + 
    geom_point(aes(x=x,y=y, colour = var), cex=2) 

mytable$var_rev <- with(mytable, factor(var, levels=rev(levels(var)))) 

ggplot(mytable) + 
    geom_point(aes(x=x,y=y, colour = var_rev), cex=2) 
+0

il est prévu selon les niveaux de la variable 'col var_rev'. Si vous attendez différemment, veuillez écrire explicitement quelle sortie vous avez et ce que vous attendez. – Prradep

Répondre

1

Essayez ceci:

library(tidyverse) 
mytable %>% 
    arrange(desc(var)) %>% 
    ggplot() + 
    geom_point(aes(x=x,y=y, colour = var), cex=2) 

enter image description here

Just:

ggplot(mytable) + 
    geom_point(aes(x=x,y=y, colour = var), cex=2) 

enter image description here

Les points sont tracés dans le même ordre que dans la trame de données

+0

Je suppose que David cherche des points dans l'intrigue pour être dans le même ordre que les étiquettes. Ils sont opposés dans votre intrigue. Attendons d'avoir une idée claire de la question. – Prradep

+0

@Prradep il me semblait qu'il aimerait que l'ordre des points change de la parcelle d'origine donc 'a' est au dessus de' b'. Ajouté l'intrigue originale. – missuse

+0

Le code d'origine contient 'color = var_rev'. – Prradep