You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 11:39:02