R语言绘图:如何将均值数值显示在X轴上而非轴上方?
解决均值标签显示在X轴上的问题
你可以使用axis()函数替代text(),直接在X轴上添加均值的标签,这样就能让数值精准显示在X轴刻度位置,而非X轴上方。
修改后的代码示例
# 定义mu和s的示例值,可替换为你的实际数据 mu <- 40 s <- 10 curve(dnorm(x, mean=mu, sd=s), from=0, to=80, xlab="Horas", ylab="f(x)") abline(v=mu, col='red', lty=3) abline(v=mu - s/2, col='blue', lty=3) abline(v=mu + s/2, col='blue', lty=3) legend("topright", legend=c("", ""), title=(paste("N(", mu, ", ", s, ")")), title.adj=0, lty=0, lwd=0, box.lty=0) # 用axis函数在X轴指定位置添加均值标签 axis(1, at=mu, labels=mu, col.axis="red", font=2) box()
关键说明
axis(1, ...):第一个参数1表示操作X轴;at=mu:指定标签要放置的X轴位置;labels=mu:设置要显示的标签内容;- 可选参数
col.axis和font可以调整标签颜色和字体样式,让均值标签更醒目。
如果想自定义X轴刻度,把均值作为原生刻度之一,可参考以下代码:
mu <- 40 s <- 10 # 自定义包含均值的X轴刻度 custom_ticks <- c(0, mu - s/2, mu, mu + s/2, 80) curve(dnorm(x, mean=mu, sd=s), from=0, to=80, xlab="Horas", ylab="f(x)", axes=FALSE) axis(1, at=custom_ticks, labels=custom_ticks) axis(2) abline(v=mu, col='red', lty=3) abline(v=mu - s/2, col='blue', lty=3) abline(v=mu + s/2, col='blue', lty=3) legend("topright", legend=c("", ""), title=(paste("N(", mu, ", ", s, ")")), title.adj=0, lty=0, lwd=0, box.lty=0) box()
内容的提问来源于stack exchange,提问作者Amelia
相关产品推荐
相关产品推荐

