繁体   English   中英

ggplot:将线条的图例条目添加到分组条形图

[英]ggplot: adding a legend entry for a line to a grouped bar chart

我想要 plot,在 R 并使用ggplot2 ,一个条形图显示,对于几个组,两个变量作为条形图,一个变量作为一条线。 所有变量都在同一尺度上。

diamonds为例,

library(tidyverse)

diamonds %>% 
    group_by(cut) %>% 
    summarize(avg = median(carat), min = min(carat), max = max(carat)) %>%
    pivot_longer(cols = c("min", "max"), names_to = "bounds", values_to = "weight") %>%
    ggplot() +
    geom_col(mapping = aes(x = cut, y = weight, fill = bounds), position = "dodge") +
    geom_line(mapping = aes(x = cut, y = avg), group = 1)

在此处输入图像描述

我现在想做的有两个方面:

  1. 为该行添加图例条目;
  2. 理想情况下还可以控制线条的颜色。

我搜索了 google 和 SO,并查看了scale_color_* ,但没有成功,而且我仍然不是真正的“grokking” ggplot2的特殊绘图方法,所以任何帮助将不胜感激。 谢谢!

您可以为美学添加color以获得线条的图例,并使用scale_color_manual像这样更改颜色线:

library(tidyverse)

diamonds %>% 
  group_by(cut) %>% 
  summarize(avg = median(carat), min = min(carat), max = max(carat)) %>%
  pivot_longer(cols = c("min", "max"), names_to = "bounds", values_to = "weight") %>%
  ggplot() +
  geom_col(mapping = aes(x = cut, y = weight, fill = bounds), position = "dodge") +
  geom_line(mapping = aes(x = cut, y = avg, color = "name_line"), group = 1) +
  scale_color_manual("Legend line", values = c("name_line" = "yellow"))

创建于 2023-01-27,使用reprex v2.0.2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM