在ggplot中有两个变量的直方图

时间:2018-06-01 17:27:14

标签: r ggplot2

我有一个包含两个变量的数据框:

DF <- data.frame(Now = as.numeric(c(1, 6, 4, 4, 5, 6)), Before = as.numeric(c(1, 6, 3, 5, 10, 10)))

我可以轻松地分别绘制两个变量:

library(ggplot2)
ggplot(DF, aes(Now))+
  geom_histogram()
ggplot(DF, aes(Before))+
  geom_histogram()

但是我想将两个变量一起绘制,以便很容易看到Before和Now之间的变化。在这里的答案中描述了一种方法:Plot two variables in the same histogram with ggplot。但我更愿意将一个不同颜色的条形图并排放置。如何才能做到这一点? (旁注:如果使用geom_bargeom_histogram更容易,那对我也有效。)

1 个答案:

答案 0 :(得分:2)

您需要使用DF ...

之类的内容将tidyr::gather转换为长格式
library(tidyr)
library(ggplot2)

DF %>% 
  gather(key=Type, value=Value) %>% 
  ggplot(aes(x=Value,fill=Type)) + 
  geom_histogram(position="dodge")

enter image description here