title: ggplot2 bar-chart order by values of one group
body: <p>I am trying to order a barplot in ggplot. 
  I am trying to do one of these side-by-side bar plots. I have data for 2 groups and I would like to sort the plot by the values of one group. At the moment, my plot looks like this:</p>
  
  <p><a href="https://i.stack.imgur.com/nsLZf.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/nsLZf.png" alt="Example barplot"></a></p>
  
  <p>I would like to achieve this: </p>
  
  <p><a href="https://i.stack.imgur.com/bBAfL.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/bBAfL.png" alt="Expected plot"></a></p>
  
  <p>Where the plot is ordered by the decreasing values of group 1 (here blue). 
  How do I do that? I tried fct_reorder on the Category within the groups, arrange, sort, order, managed to order it outside of ggplot but it didn't come out that way... any help would be appreciated!</p>
  
  <p>EDIT: 
  According to the suggestions I tried the following: </p>
  
  <pre><code>data %&gt;% 
    ggplot(aes(x = fct_rev(fct_reorder(labels, value)), y = value, fill 
    = variable)) +
     geom_bar(stat="identity", width=.5, position = "dodge")  +
     theme(axis.text.x = element_text(angle = 90, hjust = 1))
  </code></pre>
  
  <p>and I got: </p>
  
  <p><a href="https://i.stack.imgur.com/t1Opl.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/t1Opl.png" alt="Result Plot"></a></p>
  
  <p>Which is not really what I want. I want to sort by selected (the red bars) in descending order. Selected and new are obviously one variable, so in one column. If I have to separate them thats fine, I just dont know how.  </p>
  
  <p>Data: </p>
  
  <pre><code>structure(list(labels = c("3", "16", 
                        "20", "15", "2", 
                        "11", "19", 
                        "8", "1", 
                        "9", "12", "14", 
                        "22", "6", "5", 
                        "18", "17", "23", 
                        "21", "13", "7", 
                        "10", "4", "3", "16", 
                        "20", "15", "2", 
                        "11", "19", 
                        "8", "1", 
                        "9", "12", "14", 
                        "22", "6", "5", 
                        "18", "17", "23", 
                        "21", "13", "7", 
                        "10", "4"), variable = structure(c(1L,  1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
                                                            1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
                                                            2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("selected", "new"), class = "factor"), value = c(14.6323031713383, 15.9559892686597, 
                                                                                                                                                                                                    17.8080362595634, 17.9067064016601, 24.0164577112395, 24.8811598509513, 
                                                                                                                                                                                                    26.6357978795688, 26.8956804786175, 29.9814126083425, 32.0991304536091, 
                                                                                                                                                                                                    32.1102536829839, 35.4868462306579, 38.1006034580602, 51.1456293356122, 
                                                                                                                                                                                                    51.3589926258885, 52.1663444535308, 54.5568962268846, 55.046508165816, 
                                                                                                                                                                                                    57.3540750283887, 59.4724704424851, 66.1242468388916, 76.0316429487087, 
                                                                                                                                                                                                    81.2328164785417, 0.852076511173202, 14.5657895883356, 12.879854304722, 
                                                                                                                                                                                                    5.64377267586918, 7.1645313211506, 22.9837800173366, 25.5540168398152, 
                                                                                                                                                                                                    22.2012270424052, 23.9767694081375, 23.8383007367455, 29.8528524241582, 
                                                                                                                                                                                                    35.157323503853, 3.57512478022716, 2.79829414578611, 25.7839377086262, 
                                                                                                                                                                                                    1.61935008218228, 36.4318154009141, 41.9502761903778, 43.6568981148706, 
                                                                                                                                                                                                    50.8270620551394, 25.1245202778254, 17.0173820081843, 32.5450448621647
                                                                                                                                                               )), row.names = c(NA, -46L), class = "data.frame")
  </code></pre>