【问题标题】:Change alphabetical order in ggplot R [duplicate]更改ggplot R中的字母顺序[重复]
【发布时间】:2021-08-19 23:10:29
【问题描述】:

我正在尝试按照我在我正在使用的数据框中给它的顺序创建一个线图,但是我已经尝试了一切,当我添加类似 reorder 或 stat = "identity" 的东西时,它会显示错误,那么,有人可以帮助我吗?

#Create first data frame w/ women's information
df <- data.frame(Ocupacion=c("Estudiantes", "Licenciados/as",
                        "Predoctorales", "Doctores/as", "Profesores/as", 
                        "Catedraticos/as"),
                 Porcentaje=c(54.3, 60.2, 51, 49, 36.1, 14.1),
                 Gender=(c("% Mujeres")))


head(df)


#Create second data frame w/ men's information
df2 <- data.frame(Ocupacion=rep(c("Estudiantes", "Licenciados/as",
                             "Predoctorales", "Doctores/as", "Profesores/as", 
                             "Catedraticos/as"),1),
                  Porcentaje=c(45.3, 39.2, 50.7, 51, 61.2, 82),
                  Gender=(c("% Hombres")))


head(df2)

#Bind both data frames into one to create the graph
df3 <- rbind(df, df2)



# Change line types by groups (gender)

library(ggplot2)
ggplot(df3, aes(x=Ocupacion, y=Porcentaje, group=Gender)) +
  geom_line(stat = "identity", aes(linetype=Gender))+
  theme_bw() +
  ggtitle("Figura 2: Porcentaje de las mujeres y hombres en las universidades
          públicas españolas 2005-2007") +
  theme(plot.title = element_text(hjust = 0.5))+
  geom_point()

【问题讨论】:

  • df3$Gender &lt;- factor(df3$Gender, levels = &lt;wanted order&gt;)。这是重复的。

标签: r ggplot2 line alphabetical-sort


【解决方案1】:

您需要将“性别”作为一个因素并输入要用作级别的顺序。

#Create first data frame w/ women's information
df <- data.frame(Ocupacion=c("Estudiantes", "Licenciados/as",
                             "Predoctorales", "Doctores/as", "Profesores/as", 
                             "Catedraticos/as"),
                 Porcentaje=c(54.3, 60.2, 51, 49, 36.1, 14.1),
                 Gender=(c("% Mujeres")))


head(df)


#Create second data frame w/ men's information
df2 <- data.frame(Ocupacion=rep(c("Estudiantes", "Licenciados/as",
                                  "Predoctorales", "Doctores/as", "Profesores/as", 
                                  "Catedraticos/as"),1),
                  Porcentaje=c(45.3, 39.2, 50.7, 51, 61.2, 82),
                  Gender=(c("% Hombres")))


head(df2)

#Bind both data frames into one to create the graph
df3 <- rbind(df, df2) 

df3$Gender <-factor(df3$Gender, levels = c("% Mujeres",
                                           "% Hombres"))



# Change line types by groups (gender)

library(ggplot2)
ggplot(df3, aes(x=Ocupacion, y=Porcentaje, group=Gender)) +
  geom_line(stat = "identity", aes(linetype=Gender))+
  theme_bw() +
  ggtitle("Figura 2: Porcentaje de las mujeres y hombres en las universidades
          públicas españolas 2005-2007") +
  theme(plot.title = element_text(hjust = 0.5))+
  geom_point()

【讨论】:

  • 需要更改的是Gender,而不是Ocupacion
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多