Вот способ сделать это с помощью полос, сделанных полупрозрачными и наложенными. Я думаю, что может быть немного яснее поставить столбики рядом друг с другом, и если вы предпочитаете, измените строку 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")
![](https://i.imgur.com/MSpcYCS.png)
Редактировать: Для случая, когда ваши data.frames имеют разную длину:
ds1$variable <- "ds1"
ds2$variable <- "ds2"
names(ds1) <- names(ds2)
plot.df <- rbind(ds1, ds2)
, а затем составьте график отсюда.
Создано в 2018-05-10 пакетом Представ (v0.2.0).