首页 > 解决方案 > 如何将图例添加到ggplot?

问题描述

我制作了以下代码:

ggplot() + 
  geom_histogram(test, mapping = aes(reading_test), alpha = 0.3, colour = "Blue") +
  geom_histogram(test, mapping = aes(math_test), alpha = 0.3, colour = "Red") + 
  geom_histogram(test, mapping = aes(science_test), alpha = 0.3, colour = "Orange") +
  labs(title = "Reading Test Score Histogram",
       x = "Reading Test Score Frequency",
       y = "Count") + 
  theme_minimal() +

我想为蓝色、红色和橙色添加一个图例。但是这些都是一个情节中的单独情节,所以我不知道该怎么做。我尝试使用colorsscale_color_manual但我似乎无法弄清楚。

情节图片:

标签: rggplot2

解决方案


您可以稍微重新配置您的代码,并scale_fill_manual在最后添加一个调用。我编造了一些假分数数据以供使用,但这也适用于您的数据集。

test %>%
  ggplot() + 
  geom_histogram(aes(reading_test, fill = "reading_test"), alpha = 0.3) +
  geom_histogram(aes(math_test, fill = "math_test"), alpha = 0.3) + 
  geom_histogram(aes(science_test, fill = "science_test"), alpha = 0.3) +
  labs(title = "Reading Test Score Histogram",
       x = "Reading Test Score Frequency",
       y = "Count") + 
  theme_minimal() +
  scale_fill_manual(values = c(reading_test = "Blue",
                               math_test = "Red",
                               science_test = "Orange")) +
  theme(legend.position = "bottom")

这给了我们:

输入:

structure(list(reading_test = c(60.9495483106002, 71.8601936940104, 
95.1541648479179, 30.5743511533365, 72.3029835382476, 17.7527688443661
), math_test = c(83.0534904962406, 82.9689418431371, 6.6111684544012, 
2.75105258915573, 1.65001957211643, 24.1968155838549), science_test = c(89.833056833595, 
34.2541499296203, 19.2088180920109, 35.5643856106326, 78.7074614549056, 
16.7371726129204)), row.names = c(NA, 6L), class = "data.frame")

推荐阅读