通过总和观察修改ggplot中图例的顺序

时间:2018-04-26 19:15:11

标签: r ggplot2

我根据原籍国在xgplot中绘制了一个超过x年的城市移民数量的线图。在五年的时间内,每个国家都作为自己的线绘制成图,绘制在对其他国家的图表上。

我希望按国家/地区的顺序排列传奇人数,不论国家总数是多少,而不是按现在的字母顺序排列。

我尝试过使用forcats命令,例如fct_relevel,但是除了手动操作之外,还没有找到任何其他功能,这对于多个图表来说可能非常耗时。

我的数据框包含变量yearcountrynumber_migrants,每个观察结果都是年份 - 国家/地区。

library(tidyverse)
g <- ggplot(migrants, aes(x=year, y=number_migrants, col=country)) + 
geom_line() 

当前示例: enter image description here

1 个答案:

答案 0 :(得分:2)

您需要fct_reorder

library(dplyr)
library(forcats)
migrants %>%
  mutate(
    country = fct_reorder(country, number_migrants, .desc = TRUE)
  ) %>%
  ggplot(migrants, aes(x=year, y=number_migrants, col=country)) + 
  geom_line()