Misalkan saya punya ggplot dengan lebih dari satu legenda.
mov <- subset(movies, length != "")
(p0 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
geom_point()
)
Saya dapat mematikan tampilan semua legenda seperti ini:
(p1 <- p0 + theme(legend.position = "none"))
Melewati show_guide = FALSE
ke geom_point
(per pertanyaan ini ) mematikan legenda bentuk.
(p2 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
geom_point(show_guide = FALSE)
)
Tetapi bagaimana jika saya ingin mematikan legenda warna saja? Tampaknya tidak ada cara untuk memberitahu show_guide
legenda mana untuk menerapkan perilakunya. Dan tidak ada show_guide
argumen untuk skala atau estetika.
(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
Pertanyaan ini menunjukkan bahwa cara modern (sejak ggplot2 v0.9.2) mengendalikan legenda adalah dengan guides
fungsinya.
Saya ingin dapat melakukan sesuatu seperti
p0 + guides(
colour = guide_legend(show = FALSE)
)
tetapi guide_legend
tidak memiliki argumen acara.
Bagaimana cara menentukan legenda yang ditampilkan?
ggplot2
pembaruan terbaru ,show_guide
telah ditinggalkan dan diganti olehshow.legend
.Jawaban:
Anda dapat menggunakan
guide=FALSE
discale_..._...()
legenda menekan.Sebagai contoh, Anda harus menggunakan
scale_colour_continuous()
karenalength
variabel kontinu (bukan diskrit).Atau menggunakan fungsi
guides()
Anda harus menetapkanFALSE
untuk elemen yang / estetika yang Anda tidak ingin tampil sebagai legenda, misalnya,fill
,shape
,colour
.MEMPERBARUI
Kedua solusi yang disediakan bekerja di
ggplot2
versi 2.0.0 baru tetapimovies
dataset tidak lagi ada di perpustakaan ini. Alih-alih, Anda harus menggunakan paket baruggplot2movies
untuk memeriksa solusi itu.sumber
guides(alpha=FALSE)
lakukan triknya. Terima kasih, Didzis.geom_linerange()
dan legenda itu menunjukkan tanda silang, bukan garis, masukkanshow.legend=FALSE
di dalamnyageom_linerange()
.Anda bisa menambahkan
show.legend=FALSE
ke geom untuk menekan legenda yang sesuaisumber