geom_line无法像geom_bar一样显示完整Y轴刻度的问题求解
解决ggplot中geom_line不显示指定Y轴刻度的问题
问题根源在于geom_bar默认将Y轴下限设为0,而geom_line会自动以数据最小值作为Y轴起始点,导致你设置的低于数据最小值的刻度无法显示。
只需在scale_y_continuous中添加limits参数,强制指定Y轴的取值范围,就能让所有预设刻度正常显示:
修改后的完整代码:
year <- c(2001:2020) has <- c(13980, 12170, 12340, 12700, 12503, 12747, 12894, 13072, 13174, 13330, 13090, 12558, 10843, 10342, 10454, 10262, 10473, 9007, 8534, 6806) data <- as.data.frame(cbind(year, has)) ggplot(data, aes(x=year, y= has)) + geom_line(color="lightblue", size=1) + # 替换为geom_line,可按需调整样式 xlab("Year") + ylab("Hectares") + scale_x_continuous(breaks=seq(2001,2020,1)) + scale_y_continuous( breaks=c(2500,5000,7500, 10000, 12500, 15000), limits=c(2500, 15000) # 手动指定Y轴上下限 ) + theme_classic() + theme(axis.text.x = element_text(angle = 90, vjust=0.5))
说明:
limits=c(2500, 15000)强制Y轴从2500开始、到15000结束,确保你设置的所有刻度都能显示- 可调整
geom_line的color、size等参数,让视觉效果更接近原柱状图
内容的提问来源于stack exchange,提问作者HM_ft
相关产品推荐
相关产品推荐

