在花了大部分时间寻找解决方案之后,即使在阅读了很多关于它的帖子后,我似乎也没想到这一点。
制作一个包含3行的时间序列图(链接到图表下方,请点击),图例读取(从上到下)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'))
任何帮助都将不胜感激。
答案 0 :(得分:0)
首先需要稍微整理数据,以便所有数据都在一个变量中,另一个变量指示每个数据点所引用的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()