2017-10-11 7 views
-4

J'ai préparé un dataframe et utilise un ggplot sur lui. Mais l'ordre initial n'est pas respecté. Comment je peux respecter cette commande?réorganiser ggplot avec geom_bar (stat = "identity")

Patient Nb_peptides Type_affinite 
1  22   563    a 
2  22  1040    b 
3  22  11139    c 
4  24   489    a 
5  24  1120    b 
6  24  11779    c 
7  13   467    a 
8  13  1239    b 
9  13  14600    c 


g_plot <- ggplot(data = nb_peptides_type, 
       aes(x = reorder(Patient, True_order), 
        y = Nb_peptides, 
        fill = Type_affinite)) + 
    geom_bar(stat = "identity") 

print(g_plot) 

enter image description here

+0

Quoi ou où est le 'True_order'? Je ne le vois pas dans ton code ... –

Répondre

0

S'il vous plaît fournir le code autonome pour le rendre plus facile.

Je voudrais utiliser levels en dehors de votre intrigue pour réorganiser les niveaux de facteur: Est-ce ce que vous cherchez?

## fake dataframe 
df <- data.frame(patient = as.factor(rep((21:30), each=3)), 
       nb = rpois(30, 1000), 
       type=sample(letters[1:3], replace =T, size =30)) 

## initial plot 
ggplot(data = df, 
     aes(x = patient, 
      y = nb, 
      fill = type)) + 
    geom_bar(stat = "identity") 

## adjust factors levels 
True_order <- sample((21:30), 10) 
levels(df$patient) <- True_order 


## re-plot 
ggplot(data = df, 
     aes(x = patient, 
      y = nb, 
      fill = type)) + 
    geom_bar(stat = "identity")