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
相关产品推荐
相关产品推荐

