2017-01-09 5 views
3

Я генерирую некоторые базовые строчки в ggplot2, используя geom_bar. Я хотел бы, чтобы число отображалось в том же цвете над каждым баром, и я использую geom_text. Я заполняю бары, используя scale_fill_manual(values = alpha(c("#000000", "#FF5733"))). Проблема, с которой я столкнулась, заключается в том, что текст над полосками не меняется в пользовательскую раскраску. Остальные цвета по умолчанию R.Как изменить цвет шрифта в geom_text в ggplot2 в R?

library(ggplot2) 
Area <- c("Option1", "Option2", "Option3") 
Count <- c(193, 56, 4,240, 10, 25) 
Type <- c("car", "car", "car", "bike", "bike", "bike") 
p <- data.frame(Area, Count, Type) 

ggplot(p, aes(x=Area, y=Count, color=Type)) + 
     geom_bar(stat="identity", position="dodge", aes(fill=Type), color="black") + 
     scale_fill_manual(values = alpha(c("#000000", "#FF5733"))) + 
     geom_text(aes(label=Count), position=position_dodge(width = 0.9), vjust=-0.40) 

Я попытался следующие без толку:

  1. В какой-то момент я решил, что если я мог бы текст черным, я бы принял его и двигаться дальше, но когда Я сделал это, позиционирование потерпело неудачу и сосредоточило оба текста на одном «Option» вместо того, чтобы держать текст над соответствующим баром.

    geom_text (АЕС (метка = Count), цвет = "черный", позиция = position_dodge (ширина = 0,9), vjust = -0,40)

  2. Затем я попытался это:

    geom_text (АЕС (метка = Count, цвет = с ("# 000000", "# FF5733")), положение = position_dodge (ширина = 0,9), vjust = -0,40)

я получаю следующее сообщение об ошибке с этой регулировкой : Ошибка: Эстетика должна быть либо длиной 1, либо такими же, как данные (6): ярлык, цвет, x, y

Я думаю, что это потому, что есть 6 баров, но только 2 цвета. Тем не менее, когда я добавляю цвета еще 4 раза, он просто получает больше от того, что я хочу.

Я попытался опубликовать изображения, но у меня пока нет баллов! Сожалею!

Спасибо за любую предоставленную помощь. Я бегу RStudio:

R версия 3.2.3 (2015-12-10)
Платформа: x86_64-яблочно-darwin13.4.0 (64-разрядная версия)
Запуск под: OS X 10.11.6 (El Capitan)
[1] ggplot2_2.1.0

Мир.

ответ

1

Попробуйте добавить опцию colour к geom_text эстетических отображений и назначить пользовательские цвета для двух уровней факторов в Type с scale_colour_manual

ggplot(p, aes(x=Area, y=Count, color=Type)) + 
     geom_bar(stat="identity", position="dodge", aes(fill=Type), color="black") + 
    scale_fill_manual(values = alpha(c("#000000", "#FF5733"))) + 
    geom_text(aes(label=Count, colour=Type), 
      position=position_dodge(width = 0.9), 
      vjust=-0.40) + 
    scale_colour_manual(values=c("#000000", "#FF5733")) 
+0

Это является большим, и решить эту проблему. Я не думал устанавливать цвет шкалы вручную. – Jess

Смежные вопросы