思路:就是先用ggplot2正常画一遍。然后把要高亮的点拿出来再画一层。
library(ggplot2)
# 比如:高亮显示 cut 为 Ideal 的点的 克拉*价格
df1=diamonds
df1$good=factor(df1$cut=="Ideal", levels=c(T, F) )
g1=ggplot(df1, aes(carat, price, color=good))+
geom_point(size=2)+
theme_bw()+
scale_color_manual(values=c("red", "grey"))+ggtitle("Fig1");
g1
# 把要高亮的点拿出来,再画一层
df2=df1[which(df1$good==T), ]
g2=ggplot()+
geom_point(data=df1, mapping=aes(carat, price), size=2, color="grey")+
geom_point(data=df2, mapping=aes(carat, price), size=2, color="red")+
theme_bw()+ggtitle("Fig2")
library(patchwork)
g1+g2

怎么加上图例?
g3=g1+geom_point(data=df2, mapping=aes(carat, price), size=2, color="red")+ggtitle("Fig3");
g3

== end ==
这篇博客展示了如何使用ggplot2在钻石数据中,首先创建一个包含'cut'为'Ideal'的点的红色图层,然后添加图例,并将高亮部分与其他灰色点分开。通过gplot和patchwork库,作者详细解释了如何实现这一过程。
583

被折叠的 条评论
为什么被折叠?



