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

R语言图表文本/标题重叠问题解决求助(含马赛克图代码)

问题2:R语言马赛克图文本重叠的解决方案

你的代码里出现文本重叠,主要是因为政党缩写(SIGLA_PARTIDO)数量多,横轴文本挤在一起,或者标题和图表顶部空间不足。这里给你两个针对性的解决办法:

方案1:调整基础绘图的文本与边距

直接在mosaicplot里添加控制参数,快速解决问题:

mayors <- read.csv("https://raw.githubusercontent.com/umbertomig/intro-prob-stat-FGV/master/datasets/brmayors.csv")
head(mayors)

# 先设置全局绘图参数,调整底部/顶部边距
par(mar = c(8, 4, 4, 2) + 0.1)  # 调大底部边距,给旋转后的横轴文本留空间
mosaicplot(table(mayors$SIGLA_PARTIDO, mayors$DESCRICAO_SEXO), 
           main = "Gender by party", 
           color = "turquoise",
           cex.axis = 0.7,  # 缩小轴文本字号
           cex.main = 0.9,  # 缩小标题字号
           las = 2)  # 横轴文本垂直旋转,彻底避免横向拥挤

# 第二个图复用同样的调整逻辑
par(mar = c(8, 4, 4, 2) + 0.1)
mosaicplot(table(mayors$SIGLA_PARTIDO, mayors$DESCRICAO_GRAU_INSTRUCAO), 
           main = "Level of education by party", 
           color = "plum",
           cex.axis = 0.7,
           las = 2)

关键参数说明:

  • las = 2:强制横轴文本垂直显示,解决横向文本挤堆的核心问题;
  • mar:控制绘图区域的边距,c(底部, 左侧, 顶部, 右侧),调大底部值适配旋转后的文本;
  • cex.axis/cex.main:分别缩放轴文本和标题的大小,小于1即为缩小。

方案2:用ggmosaic包实现更灵活的布局

如果基础绘图的调整不够精细,可以试试基于ggplot2的ggmosaic包,能精准控制每个元素的样式:

# 先安装并加载包
install.packages("ggmosaic")
library(ggmosaic)
library(ggplot2)

# 绘制性别vs政党的马赛克图
ggplot(data = mayors) +
  geom_mosaic(aes(x = product(SIGLA_PARTIDO), fill = DESCRICAO_SEXO)) +
  labs(title = "Gender by party", x = "Party", y = "Gender") +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1, size = 7),
        plot.title = element_text(size = 10, hjust = 0.5)) +
  scale_fill_manual(values = "turquoise")

# 绘制教育水平vs政党的马赛克图
ggplot(data = mayors) +
  geom_mosaic(aes(x = product(SIGLA_PARTIDO), fill = DESCRICAO_GRAU_INSTRUCAO)) +
  labs(title = "Level of education by party", x = "Party", y = "Education Level") +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1, size = 7),
        plot.title = element_text(size = 10, hjust = 0.5)) +
  scale_fill_manual(values = "plum")

这个方法的优势是通过theme函数可以精细调整文本的角度、对齐方式、字号,完全避免重叠问题,同时图表风格也更美观。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 17:42:56