【问题标题】:Legend for overlapping line plots重叠线图的图例
【发布时间】:2020-04-05 14:52:48
【问题描述】:

我在同一张图中重叠了两条线图。虽然一切看起来都很好,但缺少第一线图的图例。

代码如下:

library(tidyverse)
library(viridis)


total_colorectal <- data.frame(
  Year= c(2014:2018),
  Numbers=c(213,198,227,238,253)
)


total_colorectal_by_gender <- data.frame(
  Gender = c("M","M","M","M","M","F","F","F","F","F"),
  Year= c(2014, 2015, 2016, 2017, 2018,2014, 2015, 2016, 2017, 2018),
  Numbers = c(118, 127, 128,132,139,95,71,99,106,114)
)



ggplot() + 
  geom_line(data = total_colorectal, aes(x = Year, y = Numbers)) +
  geom_line(data = total_colorectal_by_gender, aes(x = Year, y = Numbers, color=Gender)) + theme_bw()

该图显示了第二条线图的图例,但缺少第一条线图的图例。我不想有一个图例标题,只有三个标签,分别是 Both、M 和 F。

我尝试通过在代码末尾添加theme(legend.title = element_blank()) 来删除图例标题。这确实删除了标题,但仍然缺少第一线图的标签。

【问题讨论】:

    标签: r ggplot2 data-visualization


    【解决方案1】:

    您需要在第一个 geom_line() 调用中指定 aes 中的颜色。一种方法是绑定两个 data.frames 并制作绘图:

    total_colorectal %>% 
    mutate(Gender="Both") %>% 
    bind_rows(total_colorectal_by_gender) %>% 
    ggplot(aes(x = Year, y = Numbers, col=Gender)) + 
    geom_line() + 
    scale_color_manual(name="",values=c("#827397","#ffb6b6","#679b9b"))
    

    【讨论】:

      猜你喜欢
      • 2012-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-02
      • 2018-08-09
      • 2016-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多