如何在R中结合分组类别使用gglikert()绘制李克特图?
用gglikert()结合分组绘制李克特数据可视化图表
你的数据已经正确定义了李克特等级的顺序,接下来可以通过两种方式结合var分组(NO/YES)使用gglikert()绘制可视化图表:
方法1:分面展示各组李克特分布
将不同分组拆分为独立子图,清晰展示每组的评分分布:
library(ggplot2) library(scales) gglikert(df, mapping = aes(y = A)) + # 按var分组分面,设置为两列布局 facet_wrap(~var, ncol = 2) + # 添加标题和标签 labs( title = "李克特评分按分组分面展示", x = "占比", y = "评分等级" ) + # 格式化x轴为百分比 scale_x_continuous(labels = percent_format())
说明
gglikert(df, aes(y = A))指定以李克特变量A为y轴,自动计算各等级的占比facet_wrap(~var)按var的两个类别创建分面,让每组的分布独立展示- 百分比格式的轴标签更直观呈现各等级的占比情况
方法2:分组并排条形图
将两个组的条形放在同一图表中并排,方便直接对比各组在相同评分等级的占比:
library(ggplot2) library(scales) gglikert(df, mapping = aes(x = A, fill = var)) + # 设置条形并排展示,避免重叠 geom_bar(position = position_dodge2(width = 0.9), stat = "count") + # 转换y轴为百分比 scale_y_continuous(labels = percent_format()) + # 添加标题和标签 labs( title = "李克特评分按分组并排对比", x = "评分等级", y = "占比", fill = "分组" ) + # 调整图例位置到顶部,优化布局 theme(legend.position = "top")
说明
aes(x = A, fill = var)指定x轴为李克特等级,用var作为填充色区分不同分组position_dodge2(width = 0.9)让同等级下的两个分组条形并排排列,便于直接对比- 百分比格式的y轴清晰展示各等级的占比差异
内容的提问来源于stack exchange,提问作者Homer Jay Simpson
相关产品推荐
相关产品推荐

