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

ggplot2设置Y轴范围后出现空白图及数据缺失警告问题

问题原因与解决办法

问题原因

你遇到的空白和警告,核心原因是**geom_bar默认从y=0开始绘制柱状图**。当你用scale_y_continuous(limits = c(75,100))设置Y轴范围时,ggplot会直接过滤掉所有Y值超出该范围的数据元素——而柱子的底部在y=0(远低于75),因此整个柱子被判定为“超出范围”,被系统移除,最终导致图形空白,同时抛出“移除3行缺失值”的警告。

另外注意:你代码里的test3是笔误,实际应该用你定义的test数据集。

解决方法

有两种实用方案:

  1. 用coord_cartesian()设置显示范围(推荐)
    这个函数只是缩放绘图的显示区域,不会删除任何数据,完美保留柱子的完整绘制逻辑:

    ggplot(data=test, aes(x=Metrics, y=Percent)) +
      geom_bar(stat="identity") +
      coord_cartesian(ylim = c(75, 100))
    
  2. 调整柱子起始点适配scale_y_continuous
    如果一定要用scale_y_continuous,可以把柱子的起始位置改为75,同时调整Y轴标签显示原数值:

    ggplot(data=test, aes(x=Metrics, y=Percent - 75)) +
      geom_col() +  # geom_col是geom_bar(stat="identity")的简写
      scale_y_continuous(limits = c(0, 25), labels = function(x) x + 75) +
      ylab("Percent")
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 10:10:25