2016-04-19 5 views
1

В настоящее время я пытаюсь изменить цвета по умолчанию, которые я сделал. Поскольку я использовал значение для аргумента aes(fill=""), добавление scale_colour_x или scale_fill_x не работает. Я предоставлю вам код, который у меня есть, и надеюсь, что вы найдете простой способ решить мою проблему со мной.Изменение цвета уклонившегося барплота в ggplot2

set.seed(123) 
platelay <- data.frame(rown = rep(letters[1:8], 4), 
         coln = rep(1:4,each = 8), 
         colorvar = rnorm(32, 0.3, 0.2)) 

В примере данных (предполагается, является частью 96 microwellplate с различными считывание флуоресценции на лунку)

ggplot(platelay,aes(x=rown,y=colorvar,fill=coln)) + 
geom_bar(position="dodge",stat="identity") 

Участок должен дать 5 бара (по одному для каждого coln) в rown и I хотите, чтобы у них были цвета, которые позволяют легко различать каждый бар.

Это то, что это выглядит как прямо сейчас: dodged barplot

Как вы можете видеть, что сочетание цветов и шкала показывает не только различные значения от 1 до 4, но и половины. Я был бы признателен за небольшую помощь, поскольку я вообще не знаком с R или кодированием (только начал изучать его на прошлой неделе).

ответ

2

Вы получаете этот цвет, потому что ваша переменная заполнения coln не является фактором. Просто преобразуйте его в коэффициент, и вы можете добавить требуемые цвета вручную, используя scale_fill_manual(). Вы можете либо указать названия цветов, либо дать шестнадцатеричные коды требуемого цвета.

ggplot(platelay,aes(x=rown,y=colorvar, fill = as.factor(coln)))+ 
geom_bar(position="dodge",stat="identity") + 
scale_fill_manual(values = c("blue", "#e50000", "#cc0000","green")) 
+0

Спасибо! Это немного лучше, но не совсем то, что я ищу. Я хотел бы настроить цвета для каждого бара. Так, например, что левая синяя, средние - разные оттенки красного, а правый - зеленый. –

+0

Я обновил ответ. Проверьте, полезно ли это – navinkb

+0

Именно то, что я хотел. Большое спасибо за это. Хотя я не знаю, почему этого не случилось, когда я попробовал это в первую очередь. NVM! –

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