ggplotの凡例タイトルを削除


111

で凡例のタイトルを削除しようとしていggplot2ます:

df <- data.frame(
  g = rep(letters[1:2], 5),
  x = rnorm(10),
  y = rnorm(10)
)

library(ggplot2)
ggplot(df, aes(x, y, colour=g)) +
  geom_line(stat="identity") + 
  theme(legend.position="bottom")

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

私はこの質問を見ましたが、そこにある解決策のどれも私にはうまくいかないようです。ほとんどは、opts非推奨の方法とtheme代わりに使用する方法についてエラーを出します。私ものさまざまなバージョンを試してみたtheme(legend.title=NULL)theme(legend.title="")theme(legend.title=element_blank)、などの一般的なエラーメッセージは、次のとおりです。

'opts' is deprecated. Use 'theme' instead. (Deprecated; last used in version 0.9.1)
'theme_blank' is deprecated. Use 'element_blank' instead. (Deprecated; last used in version 0.9.1)

ggplot2バージョン0.9.3がリリースされて以来初めて使用していますが、一部の変更をナビゲートするのが難しいと感じています...


5
labs()これに使用できますlabs(colour = "")。上記のグラフを生成したコードに行を追加します。
デニス

回答:


191

あなたはほとんどそこにいた:追加するだけ theme(legend.title=element_blank())

ggplot(df, aes(x, y, colour=g)) +
  geom_line(stat="identity") + 
  theme(legend.position="bottom") +
  theme(legend.title=element_blank())

R用クックブックのこのページでは、凡例をカスタマイズする方法について詳しく説明しています。


2
これにより、すべての凡例のタイトルが削除されます。よりローカルな制御のために、guide = guide_legend()コマンドは機能します。塗りつぶしの凡例のタイトルを削除するが、色の凡例のタイトルは保持する場合。例scale_fill_brewer(palette = "Dark2", guide = guide_legend(title = NULL)) + scale_color_manual(values = c("blue", "white", "red"))
PatrickT 2018

9

これも機能し、凡例のタイトルを変更する方法も示します。

ggplot(df, aes(x, y, colour=g)) +
  geom_line(stat="identity") + 
  theme(legend.position="bottom") +
  scale_color_discrete(name="")

7
これにより、タイトルが空の文字列に置き換えられるため、ラベルと凡例ボックスの間に余分なスペースが生じます。これは、凡例に、配置されている場所とは異なる色のボックスまたは背景がある場合にのみ表示されます。したがってtheme_bw()、凡例の周りにボックスがあり、プロットエリアのどこかに配置されているような(私の通常のアプローチ)のような単純なケースでは、迅速で準備ができたアプローチで問題ありません。
PatrickT 14

1
観察のための+1。上記のソリューションで作成された2つの異なる凡例とそれらの間の空白を使用するときに問題が発生しました。scale_color_manual(name=element_blank())+下の伝説のための設定は私のためにそれを解決しました
joaoal

@joaoalは element_blank()、推奨されるアプローチのようです。設定name = NULL は別の方法です。
PatrickT

1

labs色を使用して設定する別のオプションNULL

ggplot(df, aes(x, y, colour = g)) +
  geom_line(stat = "identity") +
  theme(legend.position = "bottom") +
  labs(colour = NULL)

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


0

のためにError: 'opts' is deprecatedtheme()代わりに使用してください。(非推奨、バージョン0.9.1で最後に使用) 'に置き換えopts(title = "Boxplot - Candidate's Tweet Scores")ました labs(title = "Boxplot - Candidate's Tweet Scores")。出来た!


0

あなたはプロットに複数の伝説を持っているかもしれないので、選択の空きスペースを残さずにただ一つのタイトルを削除する方法が設定することがあるnameの引数scale_に関数をNULL、すなわち、

scale_fill_discrete(name = NULL)

別のスレッドのコメントについて @pascalにkudos )

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