web-dev-qa-db-ja.com

美学とgeom_textを使用する場合、凡例から「a」を削除します

このコードで生成された凡例から文字「a」を削除するにはどうすればよいですか? geom_textを削除すると、凡例に「a」の文字は表示されません。ただし、geom_textは保持します。

ggplot(data = iris, aes(x = Sepal.Length, y=Sepal.Width, shape = Species, colour = Species)) + 
   geom_point() + 
   geom_text(aes(label = Species))
104
user2700207

show.legend = FALSEgeom_textを設定します:

ggplot(data = iris,
       aes(x = Sepal.Length, y = Sepal.Width, colour = Species, shape = Species, label = Species)) + 
    geom_point() +
    geom_text(show.legend = FALSE)

引数show_guideは、show.legendで名前をggplot2 2.0.0に変更しました( リリースニュースを参照 )。


Pre _ggplot2 2.0.0

show_guide = FALSEのように...

ggplot( data=iris, aes(x=Sepal.Length, y=Sepal.Width , colour = Species , shape = Species, label = Species ) , size=20 ) + 
geom_point()+
geom_text( show_guide  = F )

enter image description here

118
Simon O'Hanlon

同様の問題 がありました。サイモンのソリューションはうまくいきましたが、少しひねりが必要でした。既存の引数に置き換えるのではなく、geom_textの引数にadd "show_guide = F"を追加する必要があることに気づきませんでした-これがSimonのソリューションですショー。私のようなggplot2初心者にとって、これはそれほど明白ではありませんでした。適切な例では、OPのコードを使用し、不足している引数を次のように追加します。

..
geom_text(aes(label=Species), show_guide = F) +
..
11
Nick

ニックが言ったように

次のコードでもエラーが発生します。

geom_text(aes(x=1,y=2,label="",show_guide=F))

enter image description here

一方:

geom_text(aes(x=1,y=2,label=""),show_guide=F)

aes引数の外側は、凡例のaを除去します

enter image description here

8
user2673238

guide_legend(override.aes = aes(...))を使用して、凡例の「a」を非表示にすることができます。

以下は、 guide_legend() の使用方法の簡単な例です。

library(ggrepel)
#> Loading required package: ggplot2

d <- mtcars[c(1:8),]

p <- ggplot(d, aes(wt, mpg)) +
  geom_point() +
  theme_classic(base_size = 18) +
  geom_label_repel(
    aes(label = rownames(d), fill = factor(cyl)),
    size = 5, color = "white"
  )

# Let's see what the default legend looks like.
p

# Now let's override some of the aesthetics:
p + guides(
  fill = guide_legend(
    title = "Legend Title",
    override.aes = aes(label = "")
  )
)

reprexパッケージ (v0.2.1)によって2019-04-29に作成

2