2014-12-04 3 views
1

Скажем, у меня есть data.table, который содержит наблюдения над двумя измерениями, время и идентификатор группы. (Пример данные в конце)ggplot: Генерировать последовательность гистограмм

я могу получить гистограмму для любого года с использованием

ggplot(matches[year = someYear], aes(x=length)) + geom_bar() 

Но как я мог порождающий сюжетный за каждый год? Нужно ли мне перебирать каждый год, или есть еще более удобный способ?

Образец данных:

year length NOBS 
1: 1993  1 69 
2: 1993  2 31 
3: 1993  3 26 
4: 1993  4 16 
5: 1993  5 16 
6: 1993  6 14 
7: 1993  7 11 
8: 1993  8 6 
9: 1993  9 5 
10: 1993  10 6 
11: 1993  11 3 
12: 1993  12 1 
13: 1993  13 1 
14: 1993  14 4 
15: 1993  18 7 
16: 1994  1 24 
17: 1994  2 2 
18: 1994  3 3 
19: 1994  4 2 
20: 1994  5 3 

ответ

2

Try:

ggplot(mydf, aes(x=length, y=NOBS))+geom_bar(stat='identity')+facet_grid(~year) 

enter image description here

0

Вы, вероятно, хотите использовать facets, проверьте: ?facet_grid.

0

Функция multiplot находится в cookbook-r, которая принимает список ggplots. Вы можете нажать на ссылку, чтобы получить код. Таким образом, вы можете просто зацикливаться на своих годах и хранить графики в списке.

plots <- list() 
years <- unique(matches$year) 
for(i in 1:length(unique(matches$year))){ 
    plots[[i]] <- ggplot(matches[which(matches$year==years[i]),], aes(x=length)) + geom_histogram(binwidth=1) 
} 

multiplot(plotlist=plots) 
Смежные вопросы