60

ggplot2 の凡例について質問があります。

2 つの農場での 2 つの異なる色のニンジンの平均長に関する仮説的なデータセットがあるとします。

carrots<-NULL
carrots$Farm<-rep(c("X","Y"),2)
carrots$Type<-rep(c("Orange","Purple"),each=2)
carrots$MeanLength<-c(10,6,4,2)
carrots<-data.frame(carrots)

簡単な棒グラフを作成します。

require(ggplot2)
p<-ggplot(carrots,aes(y=MeanLength,x=Farm,fill=Type)) + 
geom_bar(position="dodge") +
opts(legend.position="top")
p

私の質問は: 凡例からタイトル (「タイプ」) を削除する方法はありますか?

ありがとう!

4

6 に答える 6

55

+ theme(legend.title = element_blank())ユーザー「gkcn」が指摘したように、最良のオプションは使用することであることがわかりました。

私 (2015 年 3 月 26 日) では、以前に提案されたタイトルを使用して 1 つのタイトルlabs(fill="")scale_fill_discrete("")削除し、別の凡例を追加するだけでしたが、これは役に立ちません。

于 2015-03-26T17:49:13.580 に答える
53

凡例のタイトルを最初のパラメーターとしてスケールに渡すことで、凡例のタイトルを変更できます。例えば:

ggplot(carrots, aes(y=MeanLength, x=Farm, fill=Type)) + 
  geom_bar(position="dodge") +
  theme(legend.position="top", legend.direction="horizontal") +
  scale_fill_discrete("")

これにはショートカットもあります。labs(fill="")

凡例はグラフの上部にあるため、凡例の向きを変更することもできます。これは、を使用して行うことができますopts(legend.direction="horizontal")

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

于 2011-05-16T20:36:11.853 に答える
29

使用できますlabs

p + labs(fill="")

プロット例

于 2011-05-16T20:27:37.047 に答える
24

私にとってうまくいった唯一の方法は を使用することでした. and とlegend.title = theme_blank()比較して最も便利なバリアントだと思います.labs(fill="")scale_fill_discrete("")

ggplot(carrots,aes(y=MeanLength,x=Farm,fill=Type)) + 
geom_bar(position="dodge") +
opts(
    legend.position="top",
    legend.direction="horizontal",
    legend.title = theme_blank()
)

PSドキュメントには、さらに便利なオプションがあります。

于 2011-08-25T05:52:17.483 に答える
7

すでに 2 つの適切なオプションがあるため、ここでは を使用した別のオプションを示しますscale_fill_manual()。これにより、バーの色も簡単に指定できることに注意してください。

ggplot(carrots,aes(y=MeanLength,x=Farm,fill=Type)) + 
  geom_bar(position="dodge") +
  opts(legend.position="top") +
  scale_fill_manual(name = "", values = c("Orange" = "orange", "Purple" = "purple"))

ggplot2 の最新 (2015 年 1 月現在) バージョン (バージョン 1.0) を使用している場合は、次のように動作するはずです。

ggplot(carrots, aes(y = MeanLength, x = Farm, fill = Type)) +
  geom_bar(stat = "identity", position = "dodge") +
  theme(legend.position="top") +
  scale_fill_manual(name = "", values = c("Orange" = "orange", "Purple" = "purple"))
于 2011-05-16T20:40:04.190 に答える