150

ggplot2 の凡例アイテム間の間隔を変更する方法はありますか? 私は現在持っています

legend.position ="top" 

これにより、水平の凡例が自動的に生成されます。しかし、アイテムの間隔が非常に狭いため、それらをさらに離す方法を考えています。

4

8 に答える 8

46

水平方向の凡例にスペースを追加するために使用する簡単な修正は、ラベルにスペースを追加するだけです (以下の抜粋を参照)。

  scale_fill_manual(values=c("red","blue","white"),
                    labels=c("Label of category 1          ",
                             "Label of category 2          ",
                             "Label of category 3"))
于 2015-03-07T14:45:45.340 に答える
40

凡例のエントリ間にスペースを追加するには、テーマ要素の余白を調整しますlegend.text

各凡例ラベルの右側に 30pt のスペースを追加するには (水平凡例に役立つ場合があります):

p + theme(legend.text = element_text(
    margin = margin(r = 30, unit = "pt")))

各凡例ラベルの左側に 30pt のスペースを追加するには (垂直の凡例に役立つ場合があります):

p + theme(legend.text = element_text(
    margin = margin(l = 30, unit = "pt")))

ggplot2オブジェクトのp. キーワードはlegend.textmarginです。

[編集に関する注意: この回答が最初に投稿されたとき、バグがありました。バグは修正されました]

于 2017-03-21T22:36:01.313 に答える
38

これはパッケージでopts非推奨になったため、代わりに関数を使用する必要があります。ggplot2theme

library(grid) # for unit()
... + theme(legend.key.height=unit(3,"line"))
... + theme(legend.key.width=unit(3,"line"))
于 2014-11-17T11:29:51.360 に答える
17

Koshke の ggplot2 に関する作業と彼のブログ ( Koshke のブログ)から

... + theme(legend.key.height=unit(3,"line")) # Change 3 to X
... + theme(legend.key.width=unit(3,"line")) # Change 3 to X

コンソールに入力theme_get()して、他の編集可能な凡例属性を表示します。

于 2012-07-06T18:36:42.353 に答える