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

R语言ggbarplot设置Y轴43-53刻度失败求助

问题分析与解决

你的代码存在语法错误:把scale_y_continuous()直接嵌套在了ggbarplot()的lab.vjust参数里,导致Y轴设置未被正确解析为ggplot的图层修改,所以Y轴没有按预期变化。

修正后的代码

library(ggpubr) # 确保加载ggpubr包,ggbarplot来自该包

DATA1 <- data.frame(
    Percent.houses = c(44, 44.5, 44.7, 45.8, 45.9, 45, 45.4, 45.6, 45.3),
    BUILDING.TYPE = c("wood bungalow", "brick bungalow", "glass bungalow", "wood flat", "brick flat", "glass flat", "wood house", "brick house", "glass house"),
    STRUCTURAL.MAKEUP = c("wood", "brick", "glass", "wood", "brick", "glass", "wood", "brick", "glass"))

a <- ggbarplot(
    DATA1, 
    x = "BUILDING.TYPE" , 
    y = "Percent.houses", 
    fill = "STRUCTURAL.MAKEUP", 
    color = "black", 
    width = 0.5, 
    sort.by.groups = TRUE, 
    x.text.angle = 45, 
    label = TRUE, 
    label.pos = "in", 
    lab.vjust = -0.2 # 仅保留lab.vjust的数值参数
) +
    scale_y_continuous(limits = c(43, 53), breaks = seq(43, 53, by = 1)) + # 独立添加Y轴设置图层
    scale_fill_manual(
        "", 
        breaks = c("wood", "brick", "glass"), 
        values = c("#009E73", "#D55E00", "#CC79A7"), 
        labels = c("wood", "brick", "glass")
    )

a + font("x.text", size = 6)

关键修正点

  • 将scale_y_continuous()从lab.vjust参数中移出,作为单独的图层通过+添加到ggplot对象后,ggplot才能正确识别并应用Y轴的范围与刻度设置。
  • lab.vjust仅需传入数值(此处为-0.2),不可混合其他图层函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:15:39