Этот вопрос связан с: Grouped, Stacked Barplot Over TimeStacked + увернулся/у barplot в ggplot
Как этот вид barplot (суммированного одной переменной и увернулся от другого) можно в ggplot. Я попытался следующие, но это не сработало:
data1 = cbind(c(1,1.25),c(1.2,1.5),c(.75,1.2))
data2 = cbind(c(1.3,1.5),c(1,1.25),c(1.25,.75))
> data1
[,1] [,2] [,3]
[1,] 1.00 1.2 0.75
[2,] 1.25 1.5 1.20
> data2
[,1] [,2] [,3]
[1,] 1.3 1.00 1.25
[2,] 1.5 1.25 0.75
>
>
> dd1 = data.frame(data1)
> dd1$id = 'first'
> dd2 = data.frame(data2)
> dd2$id = 'second'
>
> dd = rbind(dd1, dd2)
> dd
X1 X2 X3 id
1 1.00 1.20 0.75 first
2 1.25 1.50 1.20 first
3 1.30 1.00 1.25 second
4 1.50 1.25 0.75 second
>
> dd$row = c(1,2,1,2)
> melt(dd, id=c('id','row'))
id row variable value
1 first 1 X1 1.00
2 first 2 X1 1.25
3 second 1 X1 1.30
4 second 2 X1 1.50
5 first 1 X2 1.20
6 first 2 X2 1.50
7 second 1 X2 1.00
8 second 2 X2 1.25
9 first 1 X3 0.75
10 first 2 X3 1.20
11 second 1 X3 1.25
12 second 2 X3 0.75
>
>
ggplot(mm)+
geom_bar(data=mm[mm$id=='first',], aes(x=variable, y=value, fill=factor(row)),stat='identity')+
geom_bar(data=mm[mm$id=='second',], aes(x=variable, y=value, fill=factor(row)),stat='identity')
Но это создает только один столбчатой, а не 2 сложенных баров.
Желательно, чтобы в будущей версии ggplot были стеки = varA, dodge = varB, а не fill = var1, так что один или оба могут быть легко применены.
Я думаю, что вы можете» t есть оба, но [здесь] (http://stackoverflow.com/questions/12715635/ggplot2-bar-plot-with-both-stack-and-dodge) - некоторые альтернативы –