我想用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
?