Как я могу удалить название Легенды в 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') из легенды?



спасибо!

650   5  

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").

enter image description here

я обнаружил, что лучший вариант-использовать + theme(legend.title = element_blank()) Как отметил пользователь "gkcn".

для меня (на 03/26/15), используя ранее предложенный labs(fill="") и scale_fill_discrete("") удалить один заголовок, только чтобы добавить в другую легенду, которая не является полезной.

можно использовать labs:

p + labs(fill="")

plot example

единственный способ работал для меня с помощью 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

    Ничего не найдено.