如何使用after_stat将所有fill美学映射统一到单一刻度
解决方案:统一缩放所有分组的密度至最大值1
要实现所有fill分组的密度合并后统一缩放至最大值1,而非单独缩放每组,你可以直接在after_stat中用原始密度值除以所有分组密度的全局最大值,替代默认按组缩放的ndensity。
具体代码修改如下:
library(ggplot2) ggplot(iris, aes(x = Sepal.Length, fill = Species)) + geom_density(aes(y = after_stat(density / max(density, na.rm = TRUE))), alpha = 0.4)
原理说明
after_stat(density)会提取每个分组的原始密度计算值max(density, na.rm = TRUE)会获取所有分组密度中的全局最大值- 用原始密度除以这个全局最大值,就能让所有曲线的整体峰值统一为1,同时保留各组曲线的形状和相对比例
内容的提问来源于stack exchange,提问作者Quinten
相关产品推荐
相关产品推荐

