Bir ggplot'ta bazı efsaneleri kapatma


221

Birden fazla efsaneye sahip bir ggplot'um olduğunu varsayalım.

mov <- subset(movies, length != "")
(p0 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
  geom_point()
)

Böyle tüm efsanelerin ekranını kapatabilirim:

(p1 <- p0 + theme(legend.position = "none"))

Geçme show_guide = FALSEiçin geom_point(uyarınca bu soruya ) şekil efsane kapanır.

(p2 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
  geom_point(show_guide = FALSE)
)

Ama bunun yerine renk efsanesini kapatmak istersem ne olur? show_guideHangi efsanenin davranışını uygulayacağını söylemenin bir yolu yok gibi görünüyor . Ve show_guideölçekler veya estetik için bir tartışma yoktur .

(p3 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
  scale_colour_discrete(show_guide = FALSE) +
  geom_point()
)
# Error in discrete_scale

(p4 <- ggplot(mov, aes(year, rating, shape = mpaa)) +
  aes(colour = length, show_guide = FALSE) +
  geom_point()
)
#draws both legends

Bu soru , efsaneleri kontrol etmenin modern (ggplot2 v0.9.2'den beri) yolunun guidesişlevle olduğunu göstermektedir.

Gibi bir şey yapabilmek istiyorum

p0 + guides(
  colour = guide_legend(show = FALSE) 
)

ancak guide_legendgösteri argümanı yok.

Hangi efsanelerin görüntüleneceğini nasıl belirleyebilirim?


6
Son bir ggplot2güncellemeden sonra , show_guidekullanımdan kaldırıldı ve ile değiştirildi show.legend.
PatrickT

Yanıtlar:


295

Sen kullanabilirsiniz guide=FALSEyılında scale_..._...()bastırmak Efsaneye.

Senin Örneğin kullanmalısınız scale_colour_continuous()çünkü lengthsürekli değişken (ayrık değil) 'dir.

(p3 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
   scale_colour_continuous(guide = FALSE) +
   geom_point()
)

Ya kullanarak işlevi guides()ayarlamanız gerektiği konusunda FALSEsize efsane olarak görünmesini istemediğiniz estetik / o elemanı için, örneğin, fill, shape, colour.

p0 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
  geom_point()    
p0+guides(colour=FALSE)

GÜNCELLEME

Sağlanan her iki çözüm de yeni ggplot2sürüm 2.0.0'da çalışıyor, ancak moviesveri kümesi artık bu kitaplıkta mevcut değil. Bunun yerine, ggplot2moviesbu çözümleri kontrol etmek için yeni bir paket kullanmanız gerekir .

library(ggplot2movies)
data(movies)
mov <- subset(movies, length != "")

6
Scale_colour_continuous (guide = FALSE) ggplot2 0.9.3'te çalışmaz, ancak kılavuzlar (color = FALSE) sorunu çözer. Çok teşekkürler Didzis!
Nikolay Nenov

1
@NikolayNenov Garip, çünkü her iki çözüm de benim için ggplot2 ile çalışıyor 0.9.3.1
Didzis Elferts

9
Alfa efsanesini kaldırmak istiyorum . guides(alpha=FALSE)iş görmek. Teşekkürler Didzis.
l0o0

3
Kendinize dikkat edin: a'nız varsa geom_linerange()ve gösterge bir çizgi yerine bir çarpı gösteriyorsa, show.legend=FALSEiçine yerleştirin geom_linerange().
PatrickT

25

İlgili show.legend=FALSEefsaneyi bastırmak için sadece geom'ye ekleyebilirsiniz .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.