繁体   English   中英

R:GGPlot中具有两个单独类别的堆叠垂直条形图

[英]R: Stacked Vertical Bar graph with two separate categories in GGPlot

我正在尝试生成一个堆叠的垂直条形图,但是我不确定如何重塑数据集以满足ggplot的期望。

我有一个数据框,其中有两列“ killed”和“ injured”,每列都与一个州名称关联。 我想要一个垂直条形图,其中每个状态都#受伤的状态堆叠在#killed的顶部。

我可以生成标准的条形图,如下所示:

ggplot(data=data, aes(x=state,y=killed)) + 
  geom_bar(position="dodge",stat="identity") + 
  coord_flip() +
  ggtitle("Mass Shooting Killings and Injuries") + 
  labs(x="Killings and Injuries", y="State") +
  ggtitle("Victims")

我知道“堆叠”条形图的方法是向ggplot外观添加填充组件,但是问题是我不确定如何以适合我的数据的方式进行填充。

伪造的可复制示例:

data <- read.table(text = "state killed injured 
1 Arkansas 23 50 
2 Alabama 10 20
3 Texas 19 18
4 Ohio 14 15
5 Illinois 3 5", sep = "", header=T)

library(ggplot2)
library(reshape)
ggplot(data=data, aes(x=state,y=killed)) + 
  geom_bar(position="dodge",stat="identity") + 
  coord_flip() +
  ggtitle("Mass Shooting Killings and Injuries") + 
  labs(x="Killings and Injuries", y="State") +
  ggtitle("Victims")

在此处输入图片说明

我必须使用melt重塑data.frame以获得此图:

temp <- melt(data, id="state")
ggplot(data=temp, aes(x=state,y=value, fill=variable)) + 
  geom_bar(position="stack",stat="identity") + 
  coord_flip() +
  ggtitle("Mass Shooting Killings and Injuries") + 
  labs(x="Killings and Injuries", y="State") +
  ggtitle("Victims")

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM