ggplot2设置legend顺序
library(tidyverse) library(patchwork) dat_wide <- tibble( x = 1:3, top = c(4.5, 4, 5.5), middle = c(4, 4.75, 5), bottom = c(3.5, 3.75, 4.5) ) dat <- dat_wide %>% pivot_longer( cols = c(top, middle, bottom), names_to = "region", values_to = "awfulness") %>% mutate( region_ABCD = factor(region), region_sane = fct_reorder2(region, x, awfulness) ) p_ABCD <- ggplot(dat, aes(x, awfulness, colour = region_ABCD)) + geom_line() + theme(legend.justification = c(1, 0.85)) p_sane <- ggplot(dat, aes(x, awfulness, colour = region_sane)) + geom_line() + theme(legend.justification = c(1, 0.85)) p <- p_ABCD + p_sane + plot_annotation( title = 'Make the legend order = data order, with forcats::fct_reorder2()') p