ggplot2プロットエリアマージン?


88

プロットタイトルとその下のプロット領域(データのあるボックス)の間のスペースを増やす簡単な方法はありますか?同様に、軸のタイトルと軸のラベルの間にスペースを入れたいと思います。

つまり、「タイトルを少し上に、y軸のタイトルを少し左に、x軸のタイトルを少し下に移動する」方法はありますか?


1
"\n"タイトルにいつでもいくつかの文字を貼り付けて、新しい行を強制することができます。
joran 2012年

回答:


118

plot.marginintheme()を使用してプロットの余白を調整してから、vjust引数を使用して軸のラベルとタイトルを移動できますelement_text()。例えば ​​:

library(ggplot2)
library(grid)
qplot(rnorm(100)) +
    ggtitle("Title") +
    theme(axis.title.x=element_text(vjust=-2)) +
    theme(axis.title.y=element_text(angle=90, vjust=-0.5)) +
    theme(plot.title=element_text(size=15, vjust=3)) +
    theme(plot.margin = unit(c(1,1,1,1), "cm"))

あなたにこのようなものを与えるでしょう:

ここに画像の説明を入力してください

さまざまなtheme()パラメータとその引数に関する詳細情報が必要な場合?themeは、Rプロンプトで入力するだけです。


4
ありがとう!議論のgrid::unitsためにこれを機能させるために何を提供すればよいかわかりませんでしたplot.margin。に長さ4の数値を指定する必要があることがわかりましたunits。残念なことに、へのx議論unitsは何らかの方法でリサイクルされていません。また、これはすでにご存知でしょうがopts、最新バージョンのggplot2(0.9.2 +)では非推奨になり、現在themeは。にtheme_text置き換えられているため、注目/更新する価値がありelement_textます。
Paul McMurdie 2012

45
他の誰かがそれを調べる時間を節約したい場合、plot.marginのエッジの順序はunit(c(top、right、bottom、left)、units)です。
強大な2017年

19
@generic_user:ここに記載されているように覚えやすいかもしれません:t, r, b, l (To remember order, think trouble).
Tung

3
また覚えて...それを上から時計回りだけです:toprightbottomleft
spops

1
また:margin(t, r, l, b)
ブライアン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.