Предположим, у меня есть ggplot с несколькими легендами.
mov <- subset(movies, length != "")
(p0 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
geom_point()
)
Я могу отключить отображение всех легенд, как это:
(p1 <- p0 + theme(legend.position = "none"))
Переход show_guide = FALSE
к geom_point
(согласно этому вопросу ) отключает легенду формы.
(p2 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
geom_point(show_guide = FALSE)
)
Но что, если я хочу отключить цветовую легенду вместо этого? Похоже, нет способа определить, к show_guide
какой легенде следует применять ее поведение. И нет никаких show_guide
аргументов в пользу весов или эстетики.
(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
Этот вопрос предполагает, что современный (начиная с ggplot2 v0.9.2) способ управления легендами заключается в использовании guides
функции.
Я хочу быть в состоянии сделать что-то вроде
p0 + guides(
colour = guide_legend(show = FALSE)
)
но guide_legend
не имеет аргумента шоу.
Как мне указать, какие легенды отображаются?
ggplot2
обновленияshow_guide
был объявлен устаревшим и заменен наshow.legend
.Ответы:
Вы можете использовать
guide=FALSE
вscale_..._...()
для подавления легенды.Для вашего примера вы должны использовать,
scale_colour_continuous()
потому чтоlength
это непрерывная переменная (не дискретная).Или с помощью функции
guides()
вы должны установитьFALSE
для этого элемента / эстетическая , что вы не хотите выглядеть как легенда, например,fill
,shape
,colour
.ОБНОВИТЬ
Оба предоставленных решения работают в новой
ggplot2
версии 2.0.0, ноmovies
набор данных больше не присутствует в этой библиотеке. Вместо этого вы должны использовать новый пакет,ggplot2movies
чтобы проверить эти решения.источник
guides(alpha=FALSE)
Покажи фокус. Спасибо, Дидзис.geom_linerange()
и легенда показывает крест вместо линии, вставьтеshow.legend=FALSE
внутрьgeom_linerange()
.Вы можете просто добавить
show.legend=FALSE
в geom, чтобы скрыть соответствующую легендуисточник