R ggplot настройка цветов заливки и заголовков легенды - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь настроить легенду в столбчатой ​​диаграмме. У меня есть две части, которые я пытаюсь настроить, и я могу сделать это индивидуально, но когда я объединяю два шага, остается только один.

Например, это data:

State           Num.Class   Num.Tweets
Pennsylvania    Cowboys     98
Pennsylvania    Patriots    10
Pennsylvania    Eagles      174
Pennsylvania    Steelers    70
Texas           Cowboys     233
Texas           Patriots    42
Texas           Eagles      30
Texas           Steelers    26
California      Cowboys     57
California      Patriots    32
California      Eagles      39
California      Steelers    20
Massachusetts   Cowboys     23
Massachusetts   Patriots    74
Massachusetts   Eagles      1
Massachusetts   Steelers    3

с этим кодом:

g <- ggplot(data, aes(x=State, y = Num.Tweets, fill = Num.Class)) + geom_bar(stat = "identity")
g

Создает этот график:

enter image description here

Я могу (1) изменить цвета на собственные:

g <- g + scale_fill_manual(values = c("blue", "darkgreen", "navyblue", "gold"))
g

enter image description here

и (2) названия легенды сами по себе:

g <-  g + scale_fill_discrete(name = "Team", labels = c("Cowboys", "Eagles", "Patriots", "Steelers") ) 
g

enter image description here

Но если попытаться (1) и (2) вместе, первая настройка будет перезаписана, но я не могу понять, как объединить эти настройки в один оператор.

g <- g + scale_fill_manual(values = c("blue", "darkgreen", "navyblue", "gold")) +
      + scale_fill_discrete(name = "Team", labels = c("Cowboys", "Eagles", "Patriots", "Steelers") ) 
g

(То же, что и на последнем изображении.)

Как это можно сделать: сохранить цвета заливки и заголовки легенд по желанию?

1 Ответ

1 голос
/ 05 мая 2020

Вы не можете использовать два разных типа scale_fill одновременно.
Оставьте только ручной:

g + scale_fill_manual(name = "Team", 
                      labels = c("Cowboys", "Eagles", "Patriots", "Steelers"), 
                      values = c("blue", "darkgreen", "navyblue", "gold"))

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...