【问题标题】:Create custom x-axis labels for hist()为 hist() 创建自定义 x 轴标签
【发布时间】:2021-05-26 08:08:53
【问题描述】:

我正在使用下面的代码来创建直方图。我尝试使用轴代码替换 x 轴值,但除了我的 x 轴最终没有标签之外什么也没有发生。有人有解决办法吗?

 par(mfrow=c(3,1))
 for (i in c(10,20,30)) {
   a <- rnorm(50, 90, i)
   hist(a, breaks=10, main = i, xaxt="n")
   axis(1,at=seq(-2,2,by=1/3), labels =seq(-2,2,by=1/3))
   abline(v=i * seq(-2, 2, by = 1/3) + 90, col = rainbow(length(seq(-2,2,by=1/3))))
  }

【问题讨论】:

  • 您是否在 hist() 函数中尝试了 xlab="name" 参数?
  • 感谢您的回复! @ user11599我刚刚尝试过-它确实为x轴提供了一个标题,但仅添加它并不会沿x轴重新标记我的值。但是,也许我误解了你的建议......
  • 你好@sara connor,我试图理解你的直方图,但 x 轴将在 70 到 110 的范围内(当 i=10 时),所以为什么你希望你的轴从 -2到 2 个?
  • 嗨@Manu - 我正在制作一个视觉模型来描述另一个变量的分布(这是代码中的 rnorm dist),我们的团队希望标签代表不同的东西。但是这段代码似乎对我有用:axis(1,at=i * seq(-2, 2, by = 1/3)+90, labels = c('-2.0', '-1.67', '-1.33 ', '-1', '-0.67', '-0.33','0','0.33','0.67','1.0','1.33','1.67','2.0' ))

标签: r plot graph histogram


【解决方案1】:

您可能需要一个sequence,它的长度与您的自定义序列的长度相同。你可以利用hist的隐形回报。

set.seed(42)
op <- par(mfrow=c(3, 1))
for (i in c(10, 20, 30)) {
  a <- rnorm(50, 90, i)
  h <- hist(a, breaks=10, main=i, xaxt="n")
  sq <- round(seq(-2, 2, by=1/3), 2)
  ats <- do.call(seq, c(as.list(range(h$breaks)), length.out=length(sq)))
  axis(1, at=ats, labels=sq)
  abline(v=i * sq + 90, col=rainbow(length(sq)))
}
par(op)

给予

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-02
    相关资源
    最近更新 更多