2013-05-23 6 views
1

Я очень близок к тому, чего хочу, но не могу найти способ добавить последний штрих к моему графику. Вот что я имею, с данными foo и кодом для создания графика.
растопленные данных из пакета RESHAPE:R ggplot2 штабелированный штрих-код, определяющий цвета штрихов

mdf <- structure(list(v1 = structure(c(1L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 
10L, 2L, 1L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 2L), .Label = c("ind1", 
"ind10", "ind2", "ind3", "ind4", "ind5", "ind6", "ind7", "ind8", 
"ind9"), class = "factor"), v2 = c(2, 3, 1, 2, 2, 2, 3, 1, 4, 
4, 2, 3, 1, 2, 2, 2, 3, 1, 4, 4), variable = structure(c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L), .Label = c("v3", "v4"), class = "factor"), value = c(0.8, 
0.7, 0.7, 0.6, 0.4, 0.3, 0.2, 0.3, 0.9, 0.8, 0.2, 0.3, 0.3, 0.4, 
0.6, 0.7, 0.8, 0.7, 0.1, 0.2)), .Names = c("v1", "v2", "variable", 
"value"), row.names = c(NA, -20L), class = "data.frame") 

График:

library(ggplot2) 
ggplot(mdf,aes(x=reorder(v1,v2),y=value,fill=factor(v2))) + geom_bar(stat="identity",color="black") 

enter image description here Теперь мне нужно окрасить верхнюю пачку каждого столбика по-разному, скажем, с некоторой прозрачностью или событием цвета всех топ стек серый. Могу ли я сделать это с текущей структурой моего набора данных или я должен пересмотреть мои данные по-другому?

Благодаря

РЕДАКТИРОВАТЬ: выходной график, из кода, представленного Дидзис: enter image description here

ответ

2

Я хотел бы предложить использовать geom_bar() дважды - сначала, участок все данные и установить fill="grey" затем во втором geom_bar() использования только подмножество данные, где variable - v3 (нижние бары) и для тех, кто использует fill=v2.

ggplot(mdf,aes(x=reorder(v1,v2),y=value)) + 
     geom_bar(stat="identity",color="black",fill="grey")+ 
     geom_bar(data=subset(mdf,variable=="v3"), 
       aes(x=reorder(v1,v2),y=value,fill=factor(v2)), 
       stat="identity",color="black") 

enter image description here

+0

Это хорошая идея. Хотя я не знаю, почему ваша ось x не сгруппирована по v2. Здесь ваш код работает отлично. Благодаря ! – Chargaff

+0

@Chargaff Ваш код также не работал для меня (заказ), не знаю почему. –

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