гистограмма в r в логарифмическом масштабе отображает только ограниченное количество значений

Я хочу генерировать гистограммы в логарифмическом масштабе. Я использую R 2.15.2. После сообщения Гистограмма с логарифмической шкалой мой минимальный пример кода выглядит так:

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

В моем случае полученная гистограмма имеет самое высокое значение около 15. Однако max(a) показывает, что самое высокое значение выше этого.

Вопрос в том, как заставить его отображать все значения a?


person zuckerbrot    schedule 26.07.2013    source источник


Ответы (1)


Когда вы используете в функции plot() только объект hist.a$count по оси x, вы получаете просто число, соответствующее длине вашего объекта - они не являются фактическими числами значений 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)
person Didzis Elferts    schedule 26.07.2013