我想生成对数刻度的直方图。我正在使用 R 2.15.2。在使用对数刻度直方图后, 我的最小代码示例如下所示:
a <- rlnorm(1000)
hist.a <- hist(a, plot = FALSE)
plot(hist.a$count, log = "xy")
在我的情况下,生成的直方图的最高值约为 15。但是,max(a)
显示的最高值高于该值。
问题是:我怎样才能让它显示所有的值a
?
当您在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)