Как я могу удалить название Легенды в ggplot2?
у меня есть вопрос относительно легенды в ggplot2.
скажем, у меня есть гипотетический набор данных о средней длине моркови для двух разных цветов на двух фермах:
carrots<-NULL
carrots$Farm<-rep(c("X","Y"),2)
carrots$Type<-rep(c("Orange","Purple"),each=2)
carrots$MeanLength<-c(10,6,4,2)
carrots<-data.frame(carrots)
Я делаю простой штриховой график:
require(ggplot2)
p<-ggplot(carrots,aes(y=MeanLength,x=Farm,fill=Type)) +
geom_bar(position="dodge") +
opts(legend.position="top")
p
мой вопрос: есть ли способ удалить заголовок ('Type') из легенды?
спасибо!
5 ответов:
вы можете изменить название Легенды, передав его в качестве первого параметра в масштабе. Например:
ggplot(carrots, aes(y=MeanLength, x=Farm, fill=Type)) + geom_bar(position="dodge") + theme(legend.position="top", legend.direction="horizontal") + scale_fill_discrete("")существует также ярлык для этого, т. е.
labs(fill="")Так как ваша легенда в верхней части диаграммы, вы также можете изменить ориентацию легенда. Вы можете сделать это с помощью
opts(legend.direction="horizontal").
я обнаружил, что лучший вариант-использовать
+ theme(legend.title = element_blank())Как отметил пользователь "gkcn".для меня (на 03/26/15), используя ранее предложенный
labs(fill="")иscale_fill_discrete("")удалить один заголовок, только чтобы добавить в другую легенду, которая не является полезной.
единственный способ работал для меня с помощью
legend.title = theme_blank()и я думаю, что это самый удобный вариант в сравнении сlabs(fill="")иscale_fill_discrete(""), что также может быть полезно в некоторых случаях.ggplot(carrots,aes(y=MeanLength,x=Farm,fill=Type)) + geom_bar(position="dodge") + opts( legend.position="top", legend.direction="horizontal", legend.title = theme_blank() )P. S. Есть более полезные опции в документация.
у вас уже есть два хороших варианта, так что вот еще один с помощью
scale_fill_manual(). Обратите внимание, что это также позволяет легко указать цвета баров:ggplot(carrots,aes(y=MeanLength,x=Farm,fill=Type)) + geom_bar(position="dodge") + opts(legend.position="top") + scale_fill_manual(name = "", values = c("Orange" = "orange", "Purple" = "purple"))Если вы используете последнюю (по состоянию на январь 2015 года) версию ggplot2 (версия 1.0), то должно работать следующее:
ggplot(carrots, aes(y = MeanLength, x = Farm, fill = Type)) + geom_bar(stat = "identity", position = "dodge") + theme(legend.position="top") + scale_fill_manual(name = "", values = c("Orange" = "orange", "Purple" = "purple"))


Comments