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

R语言gglikert堆叠图报错及配套计数图制作问题

问题解答

一、「unused argument (cutoff = 5)」错误原因及修复

gglikert() 绘图函数本身不支持 cutoff 参数,官方文档中提到的 cutoff 是用于合并低频类别的参数,归属 likert_count() 或 likert_proportion() 这类数据预处理函数。该参数的作用是将出现次数少于阈值的类别合并为“其他”组,减少类别数量。

正确用法是先通过预处理函数传入 cutoff 处理数据,再将结果传给 gglikert():

library(ggstats)
library(ggplot2)

# 预处理数据:合并出现次数<5的压力水平类别
processed_data <- likert_count(df, var = var, val = val1, cutoff = 5)
# 绘制堆叠likert图
gglikert(processed_data)

二、制作与gglikert排序一致的国家计数条形图并水平对齐

gglikert默认会基于压力水平的分布特征(如中位数、加权得分)对国家进行排序,要让计数图匹配该排序并实现水平对齐,按以下步骤操作:

  1. 提取likert图的国家排序
    从生成的likert图对象中提取已经排好序的国家列表:
# 生成likert图对象
likert_plot <- gglikert(processed_data)
# 提取排序后的国家顺序
sorted_countries <- unique(likert_plot$data$var)
  1. 绘制匹配排序的计数条形图
    将国家列转换为因子,指定水平为提取到的排序结果,保证和likert图的国家顺序一致:
# 绘制计数条形图(coord_flip()保持和likert图同方向)
count_plot <- ggplot(df, aes(x = factor(var, levels = sorted_countries), y = ..count..)) +
  geom_bar(fill = "#3498db") +
  coord_flip() +
  labs(x = "国家", y = "样本计数") +
  theme_minimal()
  1. 水平对齐两个图表
    使用patchwork包拼接图表并开启水平对齐:
library(patchwork)
# 拼接并对齐,可通过widths调整两图宽度比例
likert_plot + count_plot + plot_layout(align = "h", widths = c(3, 1))

内容的提问来源于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.16 01:56:05