412

以下のようなプロットがあります。次のコマンドで作成されました。

library(ggplot2)

df <- data.frame(cond = factor(rep(c("A", "B"), each = 200)), 
                 rating = c(rnorm(200), rnorm(200, mean=.8)))

ggplot(df, aes(x=rating, fill=cond)) + 
geom_density(alpha = .3) +
xlab("NEW RATING TITLE") +
ylab("NEW DENSITY TITLE")

ここで、凡例のタイトルcondからNEW LEGEND TITLEに変更したいと思います。

そのため、上記のコードの最後に次の行を追加しました。

+labs(colour="NEW LEGEND TITLE")

しかし、うまくいきません。それを行う正しい方法は何ですか?

ここに画像の説明を入力

4

13 に答える 13

464

これはうまくいくはずです:

p <- ggplot(df, aes(x=rating, fill=cond)) + 
           geom_density(alpha=.3) + 
           xlab("NEW RATING TITLE") + 
           ylab("NEW DENSITY TITLE")
p <- p + guides(fill=guide_legend(title="New Legend Title"))

(または代わりに)

p + scale_fill_discrete(name = "New Legend Title")
于 2013-01-31T09:35:43.827 に答える
358

私はこれについてあまり掘り下げませんでしたが、ggplot() でfill=condを使用したため、

 + labs(color='NEW LEGEND TITLE') 

効かなかったかもしれません。ただし、 colorfillで置き換えると、機能します!

+ labs(fill='NEW LEGEND TITLE') 

これはggplot2_2.1.0でうまくいきました

于 2016-08-14T03:04:40.660 に答える
54

2 つの密度があるので、独自の色を で設定したいと思うかもしれませんscale_fill_manual

もしそうなら、あなたはすることができます:

df <- data.frame(x=1:10,group=c(rep("a",5),rep("b",5)))

legend_title <- "OMG My Title"

ggplot(df, aes(x=x, fill=group)) + geom_density(alpha=.3) +   
    scale_fill_manual(legend_title,values=c("orange","red"))

ここに画像の説明を入力

于 2013-01-31T09:39:55.113 に答える
12

いくつかの単純なグラフで機能する別の非常に単純な答えがあります。

guide_legend() への呼び出しをグラフに追加するだけです。

ggplot(...) + ... + guide_legend(title="my awesome title")

非常に素晴らしいggplot docsに示されているように。

それでもうまくいかない場合は、 guides を呼び出してガイド パラメータをより正確に設定できます

ggplot(...) + ... + guides(fill=guide_legend("my awesome title"))

への呼び出しでもこれらのパラメーターを指定することで、形状/色/サイズを変更することもできますguides

于 2013-08-23T16:49:20.087 に答える