如何在R语言ggplot2的马赛克图(Mosaic Plot)上添加数值标注
你需要在原有代码基础上新增geom_text层,利用马赛克块自动生成的边界坐标计算居中位置,绑定统计值n作为标注内容即可,修改后完整代码如下:
# 提前加载所需依赖包 library(tidyverse) library(ggmosaic) mtcars_tab <- mtcars %>% count(cyl, gear) # 统计气缸/挡位组合的样本量 mtcars_tab %>% ggplot() + geom_mosaic(aes(x = product(gear), fill = cyl, weight = n), divider = mosaic("v")) + # 新增标注层,计算每个矩形块的中心位置放置n值 geom_text(aes(x = (xmin + xmax)/2, y = (ymin + ymax)/2, label = n), color = "white", size = 5) + xlab("挡位") + ylab("气缸数") + ggtitle("mtcars数据集的挡位和气缸数分布")
关键实现逻辑说明:
geom_mosaic绘制时会自动为每一个矩形块计算xmin/xmax/ymin/ymax四个边界字段,对两个轴的上下限取均值即可得到矩形的中心点坐标- 可以根据实际显示效果调整
geom_text的color(文字颜色)、size(文字大小)参数优化展示效果
内容的提问来源于stack exchange,提问作者purple1437
相关产品推荐
相关产品推荐

