2016-07-12 3 views
1

Данные, данные мне уже есть, имеют общее количество баллов для категорий. Я пытаюсь сделать гистограмму количества домов для каждого ком и возраста, где «Дома» являются общим количеством для этой категории.Гистограмма по категориям с подсчетом

Com<-c("Newport", "Newport", "Newport", "Newport", "Newport", "Newport", "Topeka", "Topeka", "Topeka", "Topeka", "Topeka", "Topeka", "Missoula", "Missoula", "Missoula", "Missoula", "Missoula", "Missoula" ) 
Age<-c("1970s", "1960s", "1950s", "1940s", "1940_earlier", "1990s", "1970s", "1960s", "1950s", "1940s", "1940_earlier", "1990s", "1970s", "1960s", "1950s", "1940s", "1940_earlier", "1990s") 
Houses<-c( 11, 6, 3, 0, 0, 21, 44, 0, 3, 3, 25, 20, 0, 51, 236, 192, 312, 299) 
df=data.frame(Com,Age,Houses) 

Так ФР данные

histogram(~ Age | Com, data=df) 

Я также попытался

install.packages("ggplot2") 
library(ggplot2) 
g <- ggplot(df$counts, aes(df$Age)) 
g + geom_bar() 

Также

barplot(prop.table(table(df$Age))) 

И наконец

p <- ggplot(data = df, aes(x=Age)) 
p <- p + geom_histogram(aes(weights=Houses, fill=Com)) 
p <- p + scale_fill_brewer(palette="Set3") 
p <- p + facet_wrap(~ Com, ncol=1) 
p 

Вот моя R Информация о версии:

R.Version() 

$platform 
[1] "x86_64-w64-mingw32" 
$arch 
[1] "x86_64" 
$os 
[1] "mingw32" 
$system 
[1] "x86_64, mingw32" 
$status 
[1] "" 
$major 
[1] "3" 
$minor 
[1] "3.0" 
$year 
[1] "2016" 
$month 
[1] "05" 
$day 
[1] "03" 
$`svn rev` 
[1] "70573" 
$language 
[1] "R" 
$version.string 
[1] "R version 3.3.0 (2016-05-03)" 
$nickname 
[1] "Supposedly Educational" 
+0

Что результат вы получаете и каков результат вы ожидаете? –

+0

Нужны исходные данные для гистограмм. И это вообще не гистограмма. –

ответ

1

При использовании geom_bar() в ggplot2 с суммами, которые уже вычисленными (а не нуждаясь для подсчета или случаев суммы), вам нужно указать stat="identity". Как насчет

g0 <- ggplot(df,aes(Age,Houses))+ 
    geom_bar(stat="identity")+ 
    facet_wrap(~Com) 
print(g0) 

? или

ggplot(df,aes(Age,Houses))+ 
    geom_bar(stat="identity")+ 
    coord_flip()+ 
    facet_wrap(~Com,ncol=1) 
1

Функция решетки шкальный:

library(lattice) 
barchart(Houses ~ Age ,group=Com, data=df) 

Базовый раствор barplot требует, чтобы данные были в виде матрицы, таблицы или объект xtabs. По defatul вы получите Свайные бар участок, но если вы wnat такой же, как код решетки над вами добавить рядом с аргументом:

barplot(xtabs(Houses~Com+Age, data=df), beside=TRUE)