[英]How to Plot the Frequency of Two Character Variables on One Barplot Overlaid with Transparency
我有两个大型数据框,其中包含许多类别的字符和/或因子列。 我需要通过覆盖同一条形图上每对变量的频率来比较它们在第一数据帧和第二数据帧中取值的频率。 我希望能够绘制计数或比例。
我能够分别绘制每个图。
ds1 <- data.frame(var1 = as.character(c("7","10","11","4", "7","10","11","4")))
ds2 <- data.frame(var2 = c("4","4","7","7", "7","10","11","4"))
ggplot(ds1, aes(var1)) + geom_bar()
ggplot(ds2, aes(var2)) + geom_bar()
但是我在努力:
这是一种使用半透明并覆盖的条来进行处理的方法。 我认为将条形图并排放置可能会更清晰一些,如果您愿意,可以将position_identity()
更改为position_dodge()
:
library(ggplot2)
ds1 <- data.frame(var1 = as.character(c("7","10","11","4", "7","10","11","4")))
ds2 <- data.frame(var2 = c("4","4","7","7", "7","10","11","4"))
plot.df <- cbind(ds1, ds2)
plot.df <- reshape2::melt(plot.df, id.vars = NULL)
ggplot(plot.df, aes(value, group=variable, fill=variable)) +
geom_bar(position = position_identity(),
aes(y = ..prop..),
alpha=.6,
color='black')+
theme_minimal() + ggtitle("Comparing the Frequency of Categories")
ds1$variable <- "ds1"
ds2$variable <- "ds2"
names(ds1) <- names(ds2)
plot.df <- rbind(ds1, ds2)
然后从这里绘图。
由reprex软件包 (v0.2.0)于2018-05-10创建。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.