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

Geom_mosaic绘图:如何为轴添加变量标签及Yes/No标识?

解决geom_mosaic的轴标签与分类标签添加问题

我来帮你搞定这个需求!要给geom_mosaic图形添加轴的变量标签,同时显示类似mosaicplot的"Yes"/"No"分类标签,你可以按以下步骤修改代码:

1. 先确保加载必要的包

geom_mosaic属于ggmosaic包,所以首先要加载它(当然ggplot2也不能少):

library(ggplot2)
library(ggmosaic)

2. 添加轴的变量标签(轴标题)

用labs()函数就能轻松给x、y轴加上对应的变量名称,对应你用到的probation和substanceabuse:

ggplot(data) +
  geom_mosaic(aes(x = product(substanceabuse, probation), fill = substanceabuse)) +
  # 设置轴的变量标签和图例标签
  labs(
    x = "Probation Status",  # x轴对应probation变量
    y = "Substance Abuse Status",  # y轴对应substanceabuse变量
    fill = "Substance Abuse"  # 可选:调整填充色图例的标签
  )

3. 确保轴上显示"Yes"/"No"分类标签

如果你的变量本身就是包含"Yes"/"No"水平的因子,geom_mosaic默认应该会显示这些标签,但如果没显示或者显示不对,可以用scale_x_discrete()和scale_y_discrete()强制指定:

ggplot(data) +
  geom_mosaic(aes(x = product(substanceabuse, probation), fill = substanceabuse)) +
  labs(
    x = "Probation Status",
    y = "Substance Abuse Status",
    fill = "Substance Abuse"
  ) +
  # 明确设置轴上的分类标签为"Yes"和"No"
  scale_x_discrete(labels = c("Yes", "No")) +
  scale_y_discrete(labels = c("Yes", "No"))

如果你的变量是数值型(比如0/1),可以这样映射标签:

scale_x_discrete(labels = c("0" = "No", "1" = "Yes"))
scale_y_discrete(labels = c("0" = "No", "1" = "Yes"))

4. (可选)在马赛克块内添加"Yes"/"No"标签

如果你想像mosaicplot那样在每个块内显示分类标签,可以添加geom_text()图层,用stat="mosaic"来获取对应的分类值:

ggplot(data) +
  geom_mosaic(aes(x = product(substanceabuse, probation), fill = substanceabuse)) +
  labs(
    x = "Probation Status",
    y = "Substance Abuse Status",
    fill = "Substance Abuse"
  ) +
  scale_x_discrete(labels = c("Yes", "No")) +
  scale_y_discrete(labels = c("Yes", "No")) +
  # 在块内添加substanceabuse的"Yes"/"No"标签
  geom_text(
    stat = "mosaic",
    aes(label = ..y..),  # ..y..对应product里的第一个变量substanceabuse
    color = "white",  # 标签颜色,和填充色区分开
    size = 3.5,
    vjust = 0.5,  # 垂直居中
    hjust = 0.5   # 水平居中
  )

如果想同时显示两个变量的标签,可以把label改成paste(..x.., ..y.., sep="\n"),这样会换行显示probation和substanceabuse的分类。

内容的提问来源于stack exchange,提问作者p doron

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 07:53:17