如何用ggstats包的gglikert()手动设置x轴范围为±100%?
如何为gglikert图表设置固定的±100% x轴范围
要让gglikert生成的中性居中堆叠条形图的x轴固定在-100%到100%范围,你可以利用ggplot2的scale_x_continuous()来覆盖默认的轴设置——直接用xlim()无效是因为gglikert内部对x轴做了特殊的百分比转换,而scale_x_continuous()可以完整定义轴的范围、刻度和标签。
完整修改后的代码
example_data <- data.frame( Pre = as.factor(c("Somewhat Familiar","Unfamiliar","Somewhat Familiar", "Somewhat Unfamiliar","Somewhat Familiar","Unfamiliar", "Neither Unfamiliar or Familiar","Unfamiliar", "Neither Unfamiliar or Familiar","Unfamiliar")), Post = as.factor(c("Very Familiar", "Very Familiar","Somewhat Familiar", "Very Familiar","Very Familiar","Very Familiar", "Very Familiar","Somewhat Familiar","Very Familiar", "Somewhat Familiar")) ) library(ggstats) library(ggplot2) gglikert(example_data, add_totals = FALSE) + scale_x_continuous( limits = c(-100, 100), # 强制轴范围为±100% breaks = seq(-100, 100, 25), # 自定义刻度间隔 labels = paste0(abs(seq(-100, 100, 25)), "%") # 保持百分比显示格式 )
关键说明
limits = c(-100, 100)会强制x轴延伸到你需要的固定范围,不受数据实际百分比分布影响,能实现多图轴范围统一的需求breaks和labels参数用来匹配gglikert默认的百分比显示风格,你可以根据需要调整刻度间隔(比如改成10%一步)- 这个方法完全兼容gglikert的其他格式设置(分面、标签控制等),符合你优先使用gglikert的需求
内容的提问来源于stack exchange,提问作者ehickman0817
相关产品推荐
相关产品推荐

