2012-03-16 3 views
1

Я хотел бы создать столбчатый сюжет, в котором не только переменном имеет свой единственный цвет, но и категориюИзменения цвета оба переменных и категорий в ggplot2

a = c("A","A","B","B","C","C","D","D") 
b = c("inclusion","exclusion","inclusion","exclusion","inclusion","exclusion","inclusion","exclusion") 
c = c(60,20,20,80,50,55,25,20) 
dat = data.frame(category=a, variable=b, value=c) 
dat 

category variable value 
1  A inclusion 60 
2  A exclusion 20 
3  B inclusion 20 
4  B exclusion 80 
5  C inclusion 50 
6  C exclusion 55 
7  D inclusion 25 
8  D exclusion 20 

участок с Costum переменных цветами могут создаются достаточно легко:

colors <- c("#9ECAE1","#F03B20") 
ggplot(dat, aes(category, value, fill = variable)) + 
geom_bar()+ 
scale_fill_manual(values = colors) 

Вопрос в том, как вручную изменить цвета в категориях? Любая помощь будет оценена по достоинству.

РЕДАКТИРОВАТЬ: только чтобы очистить его, окончательный участок должен иметь 8 разных цветов: каждая пара/переменная каждой пары будет иметь другой цвет, назначенный вручную.

http://i.stack.imgur.com/G9uKt.png

+0

Итак, ваша цель - гистограмма с 4 барами, 8 сегментами, каждый сегмент другого цвета (т.е. 8 уникальных цветов)? – joran

+0

16 различных цветов, если это возможно - я не дал себе понять: у пары категории/переменной будет один. – fridaymeetssunday

+0

Я не должен был есть кофе сегодня утром, потому что кажется, что это будет только 8 цветов. (4 категории x 2 переменные = 8 комбинаций) – joran

ответ

2

Хорошо, в таком случае, вы просто создать переменный для каждой уникальной комбинации (в данном случае, по одному в строку, но вставив две переменные вместе немного более общее, вы можете также использовать interaction) :

dat$grp <- paste(dat$category,dat$variable) 

ggplot(dat, aes(category, value, fill = grp)) + 
    geom_bar()+ 
    scale_fill_manual(values = brewer.pal(8,"Reds")) 
+0

Это работает! Большое спасибо! – fridaymeetssunday