我認爲堆積列是ggplot2下的默認行爲,但似乎並沒有爲我的情節發生。我正在嘗試使用兩個矢量(可能有或沒有相同的長度),並將它們繪製在與疊加條相同的圖中。下面是一個簡單的例子:R ggplot2:列不堆積
z1<-c(500, 300, 200, 100)
z2<-c(800, 100, 50)
names(z1)<-c("a", "b", "c", "d")
names(z2)<-c("a", "c", "e")
z1<-as.data.frame(z1)
z2<-as.data.frame(z2)
colnames(z1)<-"total"
colnames(z2)<-"total"
ggplot()+
labs(x="", y="") +
theme_bw() + theme(panel.border = element_blank(), panel.grid.major = element_blank(),
panel.grid.minor = element_blank(), axis.line = element_line(colour = "black")) +
scale_y_continuous(labels=format_si()) +
ggtitle("Test") +
geom_bar(data=z1, aes(x=rownames(z1), y=total),position="identity",stat="identity",
fill=rgb(red=200, green=0, blue=50, maxColorValue = 255)) +
geom_bar(data=z2, aes(x=rownames(z2), y=total),position="identity",stat="identity",
fill=rgb(red=0, green=200, blue=50, maxColorValue = 255))
給我:
正如你可以看到,A和C元素是相互替代的堆疊的前面。
酒吧將被堆疊。不同的'geom_bar'調用不會相互堆疊。如果你整理你的數據,一切都會按照你的預期工作。 – Gregor
如何整理我的數據? – user3390169
結合到一個數據幀。每個維度一列(在這種情況下,一列用於x軸位置,一列用於y軸位置,一列用於填充顏色)。 [全文解釋在這裏](http://vita.had.co.nz/papers/tidy-data.pdf)。您應該使用'tidyr :: gather'或'reshape2 :: melt'來獲取長格式的數據(如果您搜索「從寬到長的數據」,則需要堆棧溢出的大量示例),添加指示顏色的列,然後將這兩個數據幀放在一起。 – Gregor