2017-10-11 192 views
-4

我已經準備好一個數據框並在他身上使用ggplot。但最初的順序不受尊重。我如何尊重這個命令?重新排列ggplot與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

什麼或在哪裏是'True_order'?我在代碼中看不到它... –

回答

0

請提供獨立的代碼,使其更容易。

我會使用levels以外的圖來重新排列因子水平:它是你在找什麼?

## 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")