如何在Ggplot中对y轴进行排序?

时间:2019-01-09 18:27:58

标签: r ggplot2

我有以下代码:

library(ggplot2)
theme_set(theme_classic())

g <- ggplot(EYAnmut_3rdParty, aes(QuestionNumber))
g + geom_bar(aes(fill=stemmed), width = 0.5) + 
  theme(axis.text.x = element_text(angle=65, vjust=0.6)) + 
  labs(title="Histogram Plot") 

哪个提供以下情节:

enter image description here

如何在Y轴上按升序对问题进行排序(从最小到最大)?此刻,它看起来非常混乱。

我的数据框的结构如下:

enter image description here

我尝试将QuestionNumber变量的结构更改为factor,但是它不起作用。

2 个答案:

答案 0 :(得分:1)

在没有样本数据的情况下,使用著名的虹膜进行了说明:可以假设“物种”是问题编号。

library(tidyverse)

iris %>% 
  arrange(desc(Species), Sepal.Length) %>% 
  ggplot(aes(fct_rev(fct_infreq(Species)), Sepal.Length, fill=Species)) +
    geom_col() +
    labs(x="Species")

答案 1 :(得分:1)

Data$QuestionNumber <- ordered(Data$QuestionNumber, 
                                           levels = c("Q1", "Q2", "Q5", "Q6", "Q7","Q8","Q9","Q10","Q11","Q12","Q13","Q14", "Q15", "Q16", "Q17"))      

此代码对我有用。我根据级别对列进行了重新排序。