2012-09-17 4 views
12

geom_text()プロット内のテキストラベルが表示され、拡張されないように、因子ベースの軸と数値軸を持つチャートのグレープロット領域を増やすにはどうすればよいですかプロット領域の外側?グラフエッジでgeom_textに対処するggplotのプロット領域を増やす

ggplot showing geom_text() plot where labels extend outside the plot area

は特に、私は、テキストラベルがいっぱいに表示されることを可能にするプロット領域内のマージン領域を提供するために、灰色の領域を拡張したいと思います。

もっと良い方法がありますか?

+10

'scale_x_discrete'や' scale_y_continuous'に 'expand'引数を使ってみることができます。これは、長さ2の数値ベクトルをとります。最初は拡大の要素で、2番目は加算的な展開です。異なる値を試して、うまくいくかどうか確認してください。 –

+0

フェローのワードクラウドは、ggplot2との互換性があることを願っています。具体的には、更新版では次のように扱います:http://blog.fellstat.com/?p=248 –

+0

@BrianDiggsこのチップをありがとう。 'expand'はそのトリックをするようですが、結果としてスタイルの微調整が必​​要になると思います。私は' theme_bw() 'を使い始めています... – psychemedia

答えて

1

ggplot_gtableを使用して各ggplotのレイアウトオプションを変更し、grid.arrangeを使用してすべてのプロットを表示することができます。

library(ggplot2) 
library(gridExtra) 
## create a dummy ggplot 
(g1 <- ggplot(mtcars, aes(wt, mpg)) + 
     geom_text(aes(label=rownames(mtcars)), size=6, angle=45) + 
     theme(plot.margin = unit(rep(1, 4), "cm"))) 

明らかに、テキストラベルはプロット領域外には広がっていません。しかし、次のコードは、ちょうどそのことができます:

gg_table <- ggplot_gtable(ggplot_build(g1)) 
gg_table$layout$clip[gg_table$layout$name=="panel"] <- "off" 
grid.draw(gg_table) 

はすべてを表示するためにgrid.arrangeを使用し、その後、各パネルのgg_tableを作成します。

grid.arrange(gg_table, gg_table, gg_table, gg_table, ncol=2) 

enter image description here

私は、これは労働集約的である知っているが、あなた複数のggplotsとgg_tablesを作成して時間を節約する関数を書くことができます。

関連する問題