我正在处理按原籍国和年龄组划分的丹麦移民数据集。我对数据进行了转换,以便查看每个年龄组的主要原籍国。我正在使用 facet_wrap 绘制它。我想做的是,由于不同的年龄组来自完全不同的地区,因此在每个方面为一个轴显示一组不同的值。例如,0 到 10 岁的人来自 x、y 和 z 国,而 10-20 岁的人来自 q、r、z 等国家。
在我当前的版本中,它显示了整个值集,包括不在前 10 名中的国家/地区。我只想显示每个方面的前 10 个原产国,实际上每个方面都有不同的轴标签。(并且,如果可能的话,按每个方面从高到低排序)。这是我到目前为止所拥有的:
library(ggplot2)
library(reshape)
###load and inspect data
load(url('http://dl.dropbox.com/u/7446674/dk_census.rda'))
head(dk_census)
###reshape for plotting--keep just a few age groups
dk_census.m <- melt(dk_census[dk_census$Age %in% c('0-9 år', '10-19 år','20-29 år','30-39 år'),c(1,2,4)])
###get top 10 observations for each age group, store in data frame
top10 <- by(dk_census.m[order(dk_census.m$Age,-dk_census.m$value),], dk_census.m$Age, head, n=10)
top10.df<-do.call("rbind", as.list(top10))
top10.df
###plot
ggplot(data=top10.df, aes(x=as.factor(Country), y=value)) +
geom_bar(stat="identity")+
coord_flip() +
facet_wrap(~Age)+
labs(title="Immigrants By Country by Age",x="Country of Origin",y="Population")