R 如何交换或指定图例元素的位置?

R 如何交换或指定图例元素的位置?,r,legend,geom-col,R,Legend,Geom Col,无论我做了什么尝试,我似乎都无法改变我的情节中两个传奇元素的位置 我需要先显示聊天开始,然后显示聊天完成 以下是数据框: grouped <- structure(list(date = c("2018-07-16", "2018-07-17", "2018-07-18", "2018-07-19", "2018-07-20", "2018-07-21", "2018-07-22", "2018-07-23", "2018-07-24", "2018-07-25", "2018-07-

无论我做了什么尝试,我似乎都无法改变我的情节中两个传奇元素的位置

我需要先显示
聊天开始
,然后显示
聊天完成

以下是数据框:

grouped <- structure(list(date = c("2018-07-16", "2018-07-17", "2018-07-18", 
"2018-07-19", "2018-07-20", "2018-07-21", "2018-07-22", "2018-07-23", 
"2018-07-24", "2018-07-25", "2018-07-26", "2018-07-27", "2018-07-28", 
"2018-07-29", "2018-07-30", "2018-07-31"), homepage_opens = c(5L, 
0L, 0L, 3L, 1L, 2L, 0L, 1L, 0L, 2L, 5L, 0L, 0L, 0L, 0L, 0L), 
    sitewide_opens = c(39L, 34L, 19L, 62L, 46L, 44L, 16L, 51L, 
    25L, 66L, 75L, 0L, 0L, 0L, 0L, 0L), chats_started = c(10L, 
    16L, 9L, 8L, 13L, 13L, 5L, 13L, 4L, 8L, 11L, 0L, 0L, 0L, 
    0L, 0L), chats_completed = c(7L, 13L, 8L, 4L, 5L, 9L, 6L, 
    13L, 2L, 7L, 5L, 0L, 0L, 0L, 0L, 0L)), class = c("tbl_df", 
"tbl", "data.frame"), row.names = c(NA, -16L))
以下是我的结论:


您只需要
guide=guide\u图例(reverse=TRUE)
,如图所示:

值得一提的是,搜索显示了与图例排序相关的几个不同问题以及类似问题的各种解决方案:

然而,这些问题的答案中没有一个能够简单地解决颠倒图例顺序的特定问题,因此我给出了这个答案,而不是试图判断许多问题中的一个是否真的足够接近,可以标记为重复

library(ggplot2)

ggplot(grouped) +
  geom_col(aes(x = date, y = chats_started, fill = "Chats started"),
           colour = "black",
           alpha = 0.5) +
  geom_col(aes(x = date, y = chats_completed, fill = "Chats completed"),
           colour = "black",
           alpha = 0.5) +
  geom_text(aes(x = date, y = chats_started, label = chats_started),
            colour = "black",
            hjust = -0.15,
            vjust = -1.5,
            size = 3) +
  geom_text(aes(x = date, y = chats_completed, label = chats_completed),
            hjust = -0.15,
            vjust = -1.5,
            size = 3,
            colour = "black") +
  labs(title = paste0("Chat Analysis\n(started vs. completed)"),
       x = "Date",
       y = "Count") +
  theme(legend.position = "top",
        legend.title = element_blank(),
        panel.grid.minor.x = element_blank(),
        panel.grid.major.x = element_blank(),
        axis.text = element_text(colour = "black")) +
  scale_fill_manual(values = c("Chats completed" = "lightgreen", "Chats started" = "sandybrown"),
                    labels = c("Chats completed", "Chats started"))
ggplot(grouped) +
    geom_col(aes(x = date, y = chats_started, fill = "Chats started"),
             colour = "black",
             alpha = 0.5) +
    geom_col(aes(x = date, y = chats_completed, fill = "Chats completed"),
             colour = "black",
             alpha = 0.5) +
    geom_text(aes(x = date, y = chats_started, label = chats_started),
              colour = "black",
              hjust = -0.15,
              vjust = -1.5,
              size = 3) +
    geom_text(aes(x = date, y = chats_completed, label = chats_completed),
              hjust = -0.15,
              vjust = -1.5,
              size = 3,
              colour = "black") +
    labs(title = paste0("Chat Analysis\n(started vs. completed)"),
         x = "Date",
         y = "Count") +
    theme(legend.position = "top",
          legend.title = element_blank(),
          panel.grid.minor.x = element_blank(),
          panel.grid.major.x = element_blank(),
          axis.text = element_text(colour = "black")) +
    scale_fill_manual(values = c("Chats completed" = "lightgreen", "Chats started" = "sandybrown"),
                      labels = c("Chats completed", "Chats started"),
                      guide = guide_legend(reverse=TRUE))