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

R语言likert包ggplot2绘图中如何换行图例分类文本?

解决Likert图中"Strongly"开头分类文本的换行问题

要实现把"Strongly Agree"/"Strongly Disagree"拆成两行显示,核心思路是修改Likert分类的因子水平标签,插入换行符\n,让ggplot自动识别换行。以下是完整实现代码:

# 加载依赖包
library(likert)
library(ggplot2)

# 加载pisaitems数据集并创建子集df
data(pisaitems)
df <- pisaitems[, 1:5] # 示例取前5列作为子集

# 批量修改所有列的分类标签,给"Strongly"开头的文本插入换行
for(col in names(df)) {
  levels(df[[col]]) <- gsub("Strongly (Agree|Disagree)", "Strongly\n\\1", levels(df[[col]]))
}

# 生成likert对象并绘制带换行标签的图
likert_result <- likert(df)
plot(likert_result) +
  theme(
    axis.text.x = element_text(lineheight = 1.3), # 调整分类标签的行高,优化换行显示
    plot.margin = margin(10, 10, 10, 10) # 可选:调整边距避免标签被截断
  )

效果说明

  • 未修改前:"Strongly Agree"和"Strongly Disagree"是单行显示,当标签较多时容易拥挤或被截断。
  • 修改后:这两个标签会自动拆分为两行,"Strongly"在上,"Agree"/"Disagree"在下,布局更清爽,可读性更强。

如果需要保存截图,可添加以下代码:

ggsave("likert_wrapped_labels.png", last_plot(), width = 10, height = 7, dpi = 300)

内容的提问来源于stack exchange,提问作者Homer Jay Simpson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 14:59:50