R Studio在堆叠时将我的数据添加到一起?

时间:2017-10-29 13:13:43

标签: r data-visualization

我正在尝试创建一个叠加的条形图,比较Cons和Labor在选举中赢得的座位(很有趣,我知道。)我是R Studio的初学者,到目前为止,这是完美的,除了....

library(ggplot2)
library(reshape2)

elections <- data.frame(Country = c("England", "NI", "Scotland", "Wales"), 
Con = c(291, 0, 13, 8), Lab = c(200, 0, 7, 28))

elections_long <- melt(elections, id = "Country")

ggplot(elections_long, aes(x = Country, y = value)) +
geom_bar(stat="identity", aes(fill = variable)) +
ggtitle("Seats Won By Labour and Conservative In the United Kingdom") +
labs(y= "Amount of Seats Won", x = "Country") +
scale_fill_manual(values = c("#53a0ed", "#f71d1d")) +
labs(fill = "Party")

它产生了这个 - https://i.stack.imgur.com/WZORA.png

这与我想要的非常接近,但是R Studio正在为工党增加任何价值,并将其与保守党分开。

我的代码中是否有任何明显的遗漏导致这种情况发生?或者,我是否可以写一些内容来阻止保守党数据吸​​收劳工数据?

此外 - 如果有人知道一种方法可以翻转最后一根酒吧,以便保守党在工党的“前面”(工党在我的数据中占据了更多席位 - 而保守党则坐在工党之上并且更高 - 理想情况下我想要蓝色的条形图很小,而红色的条形图则在“背后”竖起来了。)

谢谢!

更新 - 如果我将Conserv的第一批数据的数量更改为“91”。它将它绘制在我想要的位置(在291处) - 不知道这是一个常见的事情,或者是什么,但也许这些信息有帮助!

1 个答案:

答案 0 :(得分:0)

geom_bar的默认行为是将群组叠加在一起(请参阅here),但听起来您不想要堆叠的条形图 - 它只是看起来像“工党”的值是“保守党”栏的一部分,因为这些栏堆叠在一起。它是在堆积条形图中计算的条形的相对高度(不是绝对高度)。

如果您使用position=position_dodge(),则会将不同方绘制在一起。

library(ggplot2)
library(reshape2)

elections <- data.frame(Country = c("England", "NI", "Scotland", "Wales"), 
Con = c(291, 0, 13, 8), Lab = c(200, 0, 7, 28))

elections_long <- melt(elections, id = "Country")
names(elections_long) <- c("Country", "Party", "Votes")

ggplot(elections_long, aes(x = Country, y = Votes, fill = Party)) +
geom_bar(stat="identity", position = position_dodge()) + 
ggtitle("Seats Won By Labour and Conservative In the United Kingdom") +
labs(y= "Amount of Seats Won", x = "Country") +
scale_fill_manual(values = c("#53a0ed", "#f71d1d")) +
labs(fill = "Party")

enter image description here