ggplot中同时使用color与alpha参数时,如何移除alpha图例?
问题描述
我拥有如下数据集并进行可视化:
df = data.frame(x = -10:11, y = seq(-5,5.5,by=0.5), z = rep(c(1,2),11) ) df ggplot(df)+aes(x=x,y=y,color=factor(z),alpha=z)+ geom_point()+ geom_hline(yintercept=0)+ geom_vline(xintercept = 0)+ theme_blank()
运行上述代码生成对应图表后,查阅了同类问题但所有方法都无法移除alpha图例,寻求帮助。
解决方案
以下两种方法可有效移除alpha图例:
方法1:通过guides()函数指定隐藏alpha图例
在绘图代码末尾添加guides(alpha = "none"),直接关闭alpha图例的显示:
ggplot(df)+ aes(x=x,y=y,color=factor(z),alpha=z)+ geom_point()+ geom_hline(yintercept=0)+ geom_vline(xintercept = 0)+ theme_blank()+ guides(alpha = "none")
方法2:在alpha尺度设置中隐藏图例
由于你的z是离散取值(仅1和2),可以使用scale_alpha_discrete()并设置guide = FALSE;若z为连续值,替换为scale_alpha_continuous()即可:
ggplot(df)+ aes(x=x,y=y,color=factor(z),alpha=z)+ geom_point()+ geom_hline(yintercept=0)+ geom_vline(xintercept = 0)+ theme_blank()+ scale_alpha_discrete(guide = FALSE)
两种方法都能保留color图例正常显示,同时完全移除alpha图例。
内容的提问来源于stack exchange,提问作者An116
相关产品推荐
相关产品推荐

