重新排序 ggplot2 图例(时间序列)
Re-ordering ggplot2 legend (time series)
在花了一天的大部分时间寻找解决方案之后,即使阅读了很多关于它的帖子,我似乎也没有弄明白。
用 3 条线制作时间序列图(link 到下面的图,请点击),图例显示(从上到下)BR Def、BR Grow 和 BR Mod 但我希望它阅读(从上到下)BR Def、BR Mod 和 BR Grow.
我想最好的方法是重新排序因子水平,但我似乎做不到。
MF <- read_csv(paste0("https://raw.githubusercontent.com/LuisSousaSilva/",
"Articles-and-studies/master/MF.csv"),
col_types = cols(BR_Def = col_number(),
BR_Grow = col_number(), BR_Mod = col_number(),
Date = col_date(format = "%Y-%m-%d")))
ggplot(MF, aes(x = Date)) +
geom_line(aes(y = BR_Def, colour ='BR Def')) +
geom_line(aes(y = BR_Mod, colour ='BR Mod')) +
geom_line(aes(y = BR_Grow, colour ='BR Grow'))
Link to Graph
如有任何帮助,我们将不胜感激。
您首先需要稍微整理一下数据,以便所有数据都在一个变量中,另一个变量指示每个数据点指的是 3 个类别中的哪一个。该变量应该是一个因素,并使用 forcats::fct_relevel
设置您希望它出现在图中的顺序。
library(tidyverse)
MF <- MF %>%
gather(key = categories, value = values, -Date) %>%
mutate(categories = categories %>%
factor() %>%
fct_relevel("BR_Def", "BR_Mod"))
ggplot(MF, aes(x = Date, y = values, colour = categories)) +
geom_line()
在花了一天的大部分时间寻找解决方案之后,即使阅读了很多关于它的帖子,我似乎也没有弄明白。
用 3 条线制作时间序列图(link 到下面的图,请点击),图例显示(从上到下)BR Def、BR Grow 和 BR Mod 但我希望它阅读(从上到下)BR Def、BR Mod 和 BR Grow.
我想最好的方法是重新排序因子水平,但我似乎做不到。
MF <- read_csv(paste0("https://raw.githubusercontent.com/LuisSousaSilva/",
"Articles-and-studies/master/MF.csv"),
col_types = cols(BR_Def = col_number(),
BR_Grow = col_number(), BR_Mod = col_number(),
Date = col_date(format = "%Y-%m-%d")))
ggplot(MF, aes(x = Date)) +
geom_line(aes(y = BR_Def, colour ='BR Def')) +
geom_line(aes(y = BR_Mod, colour ='BR Mod')) +
geom_line(aes(y = BR_Grow, colour ='BR Grow'))
Link to Graph
如有任何帮助,我们将不胜感激。
您首先需要稍微整理一下数据,以便所有数据都在一个变量中,另一个变量指示每个数据点指的是 3 个类别中的哪一个。该变量应该是一个因素,并使用 forcats::fct_relevel
设置您希望它出现在图中的顺序。
library(tidyverse)
MF <- MF %>%
gather(key = categories, value = values, -Date) %>%
mutate(categories = categories %>%
factor() %>%
fct_relevel("BR_Def", "BR_Mod"))
ggplot(MF, aes(x = Date, y = values, colour = categories)) +
geom_line()