ggplot2设置legend顺序

2020-04-09 14:16:11 浏览数 (2)

代码语言:javascript复制
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

0 人点赞