R基础绘图直方图如何自定义Y轴刻度范围与间隔
ylim参数不生效的原因 R基础绘图包的hist()函数默认强制频数Y轴从0开始计数,直接传入ylim参数会被这个默认规则覆盖,这是你之前设置没生效的核心原因,不是参数写法错误。
实现方法
按以下两步调整即可得到目标Y轴效果:
- 绘制直方图时新增
yaxt = "n"参数,关闭hist默认生成的Y轴,此时ylim设置的范围就会正常生效 - 每画完一张直方图,单独调用
axis()函数自定义Y轴刻度,用seq(20, 180, by = 20)就能直接生成20、40…180的固定间隔刻度值
修改后的完整可运行代码
orientation$head_linear <- ifelse(orientation$head > 180, 360 - orientation$head, orientation$head) orientation$body_linear <- ifelse(orientation$body > 180, 360 - orientation$body, orientation$body) par(mfrow = c(2,1)) # 第一张直方图 hist(orientation$head_linear, main = NULL, ylim = c(20,180), yaxt = "n", ylab = NULL, xlab = NULL) # 给第一张图加自定义Y轴,side=2代表轴在左侧(Y轴位置) axis(side = 2, at = seq(20, 180, by = 20)) # 第二张直方图 hist(orientation$body_linear, main = NULL, ylim = c(20, 180), yaxt = "n", ylab = NULL, xlab = " Odchylka od vletového otvoru ") # 给第二张图加自定义Y轴 axis(side = 2, at = seq(20, 180, by = 20))
注意:如果你的直方图存在频数低于20的分组,柱形会被Y轴截断只显示20以上的部分,属于正常现象。

内容的提问来源于stack exchange,提问作者Silvie
相关产品推荐
相关产品推荐

