title: Having trouble with the order of items in the legend of a ggplot bar chart
body: <p>My data looks like</p>
  
  <pre><code>    language    tone        count   tone_percent    label_pos   pos
  1   c           positive    3460    36.16977        18.08488    7
  2   c           neutral     2046    21.38825        46.86389    7
  3   c           negative    4060    42.44198        78.77901    7
  4   c#          positive    3732    41.26949        20.63475    3
  5   c#          neutral     1832    20.25876        51.39887    3
  6   c#          negative    3479    38.47175        80.76413    3
  7   c++         positive    3136    33.13960        16.56980    8
  8   c++         neutral     2008    21.21949        43.74934    8
  9   c++         negative    4319    45.64092        77.17954    8
  </code></pre>
  
  <p>And I have been trying to visualize them by using ggplot2 bar chart:</p>
  
  <pre><code>p &lt;-ggplot() + theme_bw() + geom_bar(aes(y=tone_percent, x=reorder(language, -pos), fill=tone), data=data, stat="identity") + 
    geom_text(data=data, aes(x = language, y = label_pos, ymax=label_pos, hjust = 0.5, label = paste0(round(tone_percent),"%")), size=4) + 
    labs(x="Language", y="Percentage of tone") +
    scale_fill_manual(values=c('#F45E5A', '#5086FF', '#17B12B')) + 
    theme(legend.position="bottom", legend.direction="horizontal", legend.title = element_blank()) + coord_flip()
  </code></pre>
  
  <p>and it gives almost excellent result:
  <a href="https://i.stack.imgur.com/MXfLV.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/MXfLV.png" alt="enter image description here"></a></p>
  
  <p>However, the legend shows the labels in alphabetical order, but I would like to display them in the same order as bars are drawn in the chart : Positive then Neutral then Negative</p>
  
  <p>Is there any way to achieve that?</p>