オクラホマので、すべてここで、脇philosophizing、及び場合に誰が興味がありますそれを行う醜いハック。アイデアは、別のラベルを使用することです(私は0スペース、1スペースなどにピリオドを入れ替えて表示しないようにしてください)paste(period, name)
と考えてください。私はこのプロットを必要と私は一般的な伝説を共有したい場合がありますので、私は、grobsなどをアレンジしたくない、など
先に与えられた原子の例は次のようになります。
df <- data.frame(name=c('foo','bar','foo','bar'),
period=c('old','old','recent','recent'),
val=c(1.23,2.17,4.15,3.65),
stringsAsFactors=F)
df$n = as.numeric(factor(df$period))
df = ddply(df,.(period,name),transform, x=paste(c(rep(' ',n-1), name), collapse=''))
df$x = factor(df$x, levels=df[order(df$val), 'x'])
p = ggplot(data = df, aes(x = x, y = val))
p = p + geom_bar(stat='identity')
p = p + facet_grid(~period, scale='free_x')
p
別例では、まだ少し愚かな私の実際のユースケースに近い、次のようになります。
df <- ddply(mpg, .(year, manufacturer), summarize, mixmpg = mean(cty+hwy))
df$manufacturer = as.character(df$manufacturer)
df$n = as.numeric(factor(df$year))
df = ddply(df, .(year,manufacturer), transform,
x=paste(c(rep(' ',n-1), manufacturer), collapse=''))
df$x = factor(df$x, levels=df[order(df$mixmpg), 'x'])
p = ggplot(data = df, aes(x = x, y = mixmpg))
p = p + geom_bar(stat='identity')
p = p + facet_grid(~year, scale='free_x')
p = p + theme(axis.text.x=element_text(angle=90,hjust=1,vjust=.5,colour='gray50'))
p
、目を閉じて帝国を考え、そして楽しむためにしてみてください。
ああ良さ、私の作成します!あなたは*統計情報*に嘘をつける方法へのフォローアップを書いていますか? – John
これを行う唯一の方法は、別々のプロットを作成し、 'gridExtra'パッケージから' grid.arrange'を使うことです。しかし、私はそれが一般的に非常に良いプロットに終わらないことに同意します。 (ggplotにはたくさんのことがありますが、何かが本当にやるのが難しい場合は、おそらくあなたが何か愚かなことをやろうとしているからです。必ずしもそうではありません...) – joran
はい、ありがとう、超有用ではありませんが、とにかくありがとうございます。私たちがそれを使用している状況では、それは重要なプロットであり、カテゴリの順序は非常に慎重です。ここで私はこれを最小限の例で煮詰めましたが、私たちのアプリケーションでは、それらの実現された相加性の関数で十数個の信号を並べ替え、ある小面のどこかにバーを置くことは容認できません。 –