2

我想生成对数刻度的直方图。我正在使用 R 2.15.2。在使用对数刻度直方图后, 我的最小代码示例如下所示:

a <- rlnorm(1000)
hist.a <- hist(a, plot = FALSE)
plot(hist.a$count, log = "xy")

在我的情况下,生成的直方图的最高值约为 15。但是,max(a)显示的最高值高于该值。

问题是:我怎样才能让它显示所有的值a

4

1 回答 1

2

当您在x 轴上plot()仅在函数中使用对象hist.a$count时,您只会得到与对象长度相对应的数字 - 它们不是实际的a值数。您可以稍后添加实际值axis()labels=从中获取hist.a$mids

set.seed(5555)
a <- rlnorm(1000)
hist.a <- hist(a, plot = FALSE)

hist.a
  $breaks
  [1]  0  5 10 15 20 25 30 35 40

  $counts
  [1] 955  34   6   2   2   0   0   1

  $density
  [1] 0.1910 0.0068 0.0012 0.0004 0.0004 0.0000 0.0000 0.0002

  $mids
  [1]  2.5  7.5 12.5 17.5 22.5 27.5 32.5 37.5

  $xname
  [1] "a"

  $equidist
  [1] TRUE

  attr(,"class")
  [1] "histogram"

plot(hist.a$count, log = "xy",xaxt="n",type="h",lwd=10,lend=2)
axis(1,at=1:length(hist.a$mids),labels=hist.a$mids)
于 2013-07-26T11:42:28.683 回答