ggplot中geom_histogram被annotate矩形覆盖如何避免颜色干扰
问题解决方法
ggplot2的图层遵循先写在下、后写在上的渲染规则,你当前代码先绘制直方图、后绘制背景矩形,所以半透明矩形会覆盖在直方图上方,导致直方图的原始颜色被叠加影响。
调整方法非常简单:调换两个图层的书写顺序,先写annotate("rect")绘制背景色标记,再写geom_histogram绘制直方图,即可让直方图完全显示在矩形上层,不会被半透明颜色干扰。
修正后的参考代码如下:
ggplot(fol, aes(x=dftime)) + # 先绘制背景标记层(底层) annotate("rect", xmin=20, xmax=30, ymin=0, ymax=Inf, alpha=0.2, fill="red") + # 再绘制直方图(上层) geom_histogram(aes(y=..density..), color="black")
调整顺序后你可以根据需求自由设置矩形的透明度,不需要刻意压低alpha值,也不会影响直方图的原有颜色表现。
内容的提问来源于stack exchange,提问作者haeoda
相关产品推荐
相关产品推荐

