图形和图例中ggplot中每个系列的独特颜色

时间:2018-03-29 23:58:06

标签: r ggplot2 colors legend

我想用ggplot创建一个图表,用一种颜色绘制单个数据点,用另一种颜色绘制平均值,然后有一个解释颜色的图例。以下是三次尝试不起作用:

library(ggplot2)
library(dplyr)
# Create new tbl_df with average hp for each transmission
avghp <- mtcars %>% group_by(am) %>%  summarize(hp=mean(hp))

# Correct dots and colors, no legend
g1 <- ggplot(mtcars, aes(x=am, y=hp)) +
  geom_point(colour="blue" )+
  geom_point(data=avghp, colour="red", size=4)

# Legend, but colors changed
g2 <- ggplot(mtcars, aes(x=am, y=hp)) +
  geom_point(aes( colour="Individual"))+
  geom_point(data=avghp, aes(colour="Average"), size=4)

# Correct colors in graph, but not in legend
g3 <- ggplot(mtcars, aes(x=am, y=hp)) +
  geom_point(aes(fill="Individual"), colour="blue")+
  geom_point(data=avghp, aes(fill="Average"), colour="red", size=4)

g1以蓝色显示各个数据点,以红色显示平均值,但由于颜色不在aes()中,因此没有图例。 g2创建图例,但不使用与g1中相同的颜色。 g3移动aes()之外的颜色定义并使用fill()创建图例,但图例上的点都是蓝色。

我如何创建类似g3的内容,但图例中的平均hp显示红点,个人显示蓝色?或者,如何在g2

中指定特定颜色

1 个答案:

答案 0 :(得分:0)

您可以使用scale_color_manual

手动设置颜色
g2 + scale_color_manual("Legend", values = c("red", "blue"))

enter image description here