2016-01-16 2 views
1

Скажем, я графа, используя следующую команду:Получить X/Y значения от Hist() граф

hist(rnorm(100, mean = 100, sd = 40), breaks=7) 

Как я могу получить имя X/Y значения для графа? Я имею в виду, что я понимаю, что гистология работает в диапазонах, но даже тогда, как я могу получить диапазоны и построенные значения y barplot?

Я пытался что-то же просто, как:

> hist(rnorm(100, mean = 100, sd = 40), breaks=7)$x 
[1] "rnorm(100, mean = 100, sd = 40)" 

Но, как вы можете видеть, не повезло.

Я видел это сообщение (retrieve Y value from density function of given X value), но оно относится к функции плотности, и ответ, кажется, приближает функцию.

+1

В качестве общей рекомендации при изучении деталей присваивайте свою функцию чему-либо, например. 'tmp <- hist (rnorm (100, mean = 100, sd = 40), breaks = 7)', а затем выполните 'str (tmp)', чтобы увидеть, что в нем. Кроме того, '? Hist' сообщает вам также о возвращаемом значении. Добавление '$ x' было хорошей догадкой, но обратите внимание, что это частичное имя соответствовало' $ xname'. –

ответ

3

что-то вроде этого

set.seed(99) 
foo <- hist(rnorm(100, mean = 100, sd = 40), breaks=7, plot = FALSE) 
foo 
# $breaks 
# [1] -50 0 50 100 150 200 
# 
# $counts 
# [1] 2 11 34 47 6 
# 
# $density 
# [1] 0.0004 0.0022 0.0068 0.0094 0.0012 
# 
# $mids 
# [1] -25 25 75 125 175 
# 
# $xname 
# [1] "rnorm(100, mean = 100, sd = 40)" 
# 
# $equidist 
# [1] TRUE 
# 
# attr(,"class") 
# [1] "histogram" 

и только "х" и "у"

foo$breaks 
# [1] -50 0 50 100 150 200 
foo$counts 
# [1] 2 11 34 47 6 

или альтернативно mids на месте или breaks ср Marat Talipov's комментарий ниже.

foo$mids 
# [1] -25 25 75 125 175 
+2

'breaks' и' counts' имеют разную длину. Я бы предложил использовать 'mids' вместо' breaks' –

+0

Спасибо вам, это то, что я искал. –