私は、出身国と年齢層別の移民に関するデンマークのデータセットを使用しています。データを変換して、各年齢グループの上位の出身国を確認できるようにしました。facet_wrap を使用してプロットしています。私がやりたいのは、さまざまな年齢層がまったく異なる地域から来ているため、各ファセットの 1 つの軸に対して異なる値のセットを示すことです。たとえば、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")