直方图组界设置:显示组限并隐藏蓝色坐标轴
解决方案:自定义组距直方图,显示组限并隐藏蓝色坐标轴
要实现隐藏蓝色坐标轴、在横轴显示组限值的需求,可通过以下修改完成:
修改后的完整R代码
# 生成组限值 LI <- sample(10:20,1) lim <- c(LI) for(k in 1:3){ a <- c(10,20,15)[k] lim <- c(lim, lim[k]+a) } # 计算组距 densidades <- function(m){ v <- NULL for (i in 1:m){v <- c(v, lim[i+1]-lim[i])} v } densi <- densidades(3) frecuencias <- sample(150:300, 3) d <- round(frecuencias/densidades(3),2) # 生成模拟数据 si <- c(rep(lim[1]), rep(lim[2], d[1]), rep(lim[3], d[2]), rep(lim[4], d[3])) # 绘制直方图:取消默认横轴,设置为密度模式 hist(si, main="", breaks=lim, freq=FALSE, xlab="Edad", ylab="Densidades de frecuencias", xaxt="n") # 取消默认横轴,避免重复 rug(si) # 手动添加横轴组限值标签 axis(1, at=lim, labels=lim, col="black", col.ticks="black", col.axis="black") # 添加纵向网格 grid(nx=NA, ny=NULL) # 在直方图柱子上方标注密度值 bar_centers <- (lim[-1] + lim[-length(lim)])/2 # 计算每组中心位置 text(bar_centers, d, labels=d, adj=c(0.5, -0.5))
关键修改说明
hist()中添加xaxt="n":取消默认横轴,避免和自定义组限标签冲突- 移除原蓝色坐标轴代码:直接删除原
axis(1)和axis(2)的蓝色样式设置 - 自定义横轴组限:用
axis(1, at=lim, labels=lim)在组限值位置显示对应标签 - 调整密度标注位置:通过每组中心位置
bar_centers,让文字显示在柱子上方更合理 - 修正直方图模式:将
freq=T改为freq=F,匹配纵轴“频率密度”的标签逻辑
内容的提问来源于stack exchange,提问作者Amelia
相关产品推荐
相关产品推荐

