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

ggplot2堆叠百分比条形图如何将Y轴起始值设为10%而非0%

实现方法

仅需修改原代码中scale_y_continuous()的参数,其余代码完全无需改动,即可实现Y轴起始值调整为10%的需求,核心逻辑是保留轴范围外的原始值避免堆叠计算错误,仅截断Y轴显示区间。

  • 将原代码里的scale_y_continuous行替换为如下内容:
scale_y_continuous(expand = c(0, 0),labels = scales::percent, limits = c(0.1, 1), oob = ~.x)

参数说明:limits = c(0.1, 1)指定Y轴显示范围为10%~100%,oob = ~.x表示保留超出轴范围的原始数值,避免ggplot默认将范围外值标记为缺失值,导致堆叠条形高度计算错误。

  • 修改后完整可运行代码如下:
library(ggplot2)
library(reshape2)
library(ggh4x)

data <- data.frame(col1=c("Sample1","Sample2","Sample3","Sample4","Sample5","Sample6"),
                    col2=c(0.5,0.1,0.4,0.05,0.05,0.9),
                    col3=c(0.6,0.1,0.3,0.1,0.1,0.8),
                    col4=c(0.5,0.3,0.2,0.05,0.15,0.8),
                    col5=c("a","a","a","b","b","b"),
                    col6=c("c","c","c","c","c","c"))

data2 <- melt(data)

ggplot(data=data2, aes(x = variable, y = value, fill=col1))+
  geom_bar(position="stack", stat="identity")+
  scale_fill_manual(values=c("#e6194B","#ffe119","#f58231","#911eb4","#42d4f4","#bfef45")) +
  # 仅修改了本行参数
  scale_y_continuous(expand = c(0, 0),labels = scales::percent, limits = c(0.1, 1), oob = ~.x) +
  facet_nested(~col6 + ~col5, scales = "free_x",space = "free_x",switch = "x") +
  ggtitle("Title") +
  theme_classic() +
  theme(strip.text.y = element_text(angle=0),legend.position = "right",
        legend.key.size = unit(0.4, 'cm'),
        axis.line = element_line(colour = "black"),
        axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1),
        strip.placement = "outside",                      
        strip.background = element_rect(color = "white", fill = "white"),
        axis.title = element_blank()) +                  
  guides(fill=guide_legend(title=NULL, ncol = 1)) +
  xlab("X axis") +
  ylab("Y axis")
  • 效果说明:修改后Y轴刻度从10%起始,堆叠百分比比例、嵌套分面、配色、主题等所有其他元素与原代码输出效果完全一致,仅隐藏0%~10%区间的显示内容,和Excel中修改坐标轴最小值的表现完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 08:54:20