Отключение некоторых легенд в ggplot
Предположим, у меня есть 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
(в соответствии с этим вопросом ) отключает легенду формы.
- Понимание, когда data.table является ссылкой на (по сравнению с копией) другой data.table
- Есть ли встроенная функция для поиска режима?
- Как увеличить пространство между полосками на штриховом участке в ggplot2?
- Объединить строки и выражения в заголовок сюжета
- Как отсортировать вектор символа, где элементы содержат буквы и числа в R?
(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
не имеет аргумента show.
Как указать, какие легенды будут отображаться?
- Не удается загрузить пакет R xlsx на Mac OS 10.11
- Как извлечь только номер из именованного номера (без имени)?
- R: Разбить несбалансированный список в столбце data.frame
- Объединить легенды о цвете и форме в одну легенду
- R: простой способ экспортировать несколько data.frame в несколько таблиц Excel?
- Оператор "[<-" в RStudio и R
- Каков наилучший способ слияния двух наборов файлов, но для дубликатов для выбора старого файла в Windows?
- Разреженная matrix к кадру данных в R
Вы можете использовать guide=FALSE
в scale_..._...()
для подавления легенды.
Для вашего примера вы должны использовать scale_colour_continuous()
потому что length
– непрерывная переменная (не дискретная).
(p3 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) + scale_colour_continuous(guide = FALSE) + geom_point() )
Или используя функциональные guides()
вы должны установить FALSE
для этого элемента / эстетики, что вы не хотите появляться как легенда, например, fill
, shape
, colour
.
p0 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) + geom_point() p0+guides(colour=FALSE)
ОБНОВИТЬ
Оба эти решения работают в новой версии ggplot2
версии 2.0.0, но dataset для movies
больше не присутствует в этой библиотеке. Вместо этого вам нужно использовать новый пакет ggplot2movies
для проверки этих решений.
library(ggplot2movies) data(movies) mov <- subset(movies, length != "")
Вы можете просто добавить show.legend=FALSE
в geom для подавления соответствующей легенды