aestheticsおよびgeom_textを使用する場合、凡例から「a」を削除します


124

このコードによって生成された凡例から文字「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))

回答:


142

設定するshow.legend = FALSEにはgeom_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.legendinに変更されましたggplot2 2.0.0リリースニュースを参照)。


プレ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 )

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


3
3.2.1でに設定すると、凡例が完全に削除show.legendFALSEggplot2ます。
NelsonGon

14

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

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

9

ニックが言ったように

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

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

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

一方:

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

aes引数の外では、伝説上のaが削除されます

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


「a」を「r」のような何かにカスタマイズする方法はありますか?
asalimih

8

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に作成されました


伝説から「a」の文字を明確に削除できるため、これは受け入れられたものよりも優れた解決策であると思いますが、他の美学は、必要に応じて、そのままにすることができます。
Markel

1

show.legend = FALSEの引数geom_label_repel()で、凡例の「a」を削除することもできます。したがって、代わりに

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"
  )+ guides(
  fill = guide_legend(
    title = "Legend Title",
    override.aes = aes(label = "")
  )
)

できるよ、

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",
    show.legend = FALSE  )

0

同様の問題があり、ラベルを付けようとしたさまざまな色の付いたポイントの後ろに「a」が表示されましたgeom_text_repel。「a」を削除して、「a」の後ろにポイントがないようにするにshow.legend=FALSEは、に引数として追加する必要がありましたgeom_text_repel

同じ問題で苦労している可能性のある人なら誰でも理解できることを願っています!

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