R 通过总观测值修改ggplot中图例的顺序
我正在绘制一个直线图,以原籍国为基础,绘制一个城市在x年内的移民数量。每个国家都被画成自己的线,在五年的时间里与其他国家对比 我想按国家从最大到最小顺序排列x年来的移民总数,而不考虑国家总数,而不是现在的字母顺序 我尝试过使用诸如fct_relevel之类的forcats命令,但除了手动操作之外,找不到任何其他方法,这对于多个图形来说可能很耗时 我的数据框架包含变量R 通过总观测值修改ggplot中图例的顺序,r,ggplot2,R,Ggplot2,我正在绘制一个直线图,以原籍国为基础,绘制一个城市在x年内的移民数量。每个国家都被画成自己的线,在五年的时间里与其他国家对比 我想按国家从最大到最小顺序排列x年来的移民总数,而不考虑国家总数,而不是现在的字母顺序 我尝试过使用诸如fct_relevel之类的forcats命令,但除了手动操作之外,找不到任何其他方法,这对于多个图形来说可能很耗时 我的数据框架包含变量年份,国家,以及移民人数,每个观察值都是一个年份-国家对 library(tidyverse) g <- ggplot(mig
年份
,国家
,以及移民人数
,每个观察值都是一个年份-国家对
library(tidyverse)
g <- ggplot(migrants, aes(x=year, y=number_migrants, col=country)) +
geom_line()
库(tidyverse)
g您需要fct\u重新排序
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()
您需要重新订购fct\u
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()
由于OP没有给出任何关于他们正在使用的包的指示,您可能应该添加dplyr
和forcats
库调用。(好吧,我想OP确实提到了forcats
,但是对于未来的读者来说,明确依赖关系是很好的。)并且,作为参考,基本版的是移民$country=reorder(移民$country,-移民$number\u移民)
。我添加了dplyr
。他确实特别提到了fct\u releval
,所以我认为他对猫的很熟悉forcats
现在也添加了。由于OP没有给出他们正在使用的软件包的任何指示,您可能应该添加dplyr
和forcats
库调用。(好吧,我想OP确实提到了forcats
,但是对于未来的读者来说,明确依赖关系是很好的。)并且,作为参考,基本版的是移民$country=reorder(移民$country,-移民$number\u移民)
。我添加了dplyr
。他确实特别提到了fct\u releval
,所以我认为他对猫的很熟悉forcats
现在也添加了。