带有两个数据帧的ggplot条形图

gtw*_*ebb 7 r ggplot2

我想要做的是使用来自两个不同数据帧的gglot创建一个"躲闪"的条形图

不幸的geom_bar是没有看到之前添加的数据所以它将它绘制在顶部,我尝试过使用位置和宽度,但它似乎没有改变任何东西,可能是因为它是每个类别一个条.

下面的代码创建的数据不正确地绘制数据(条形图彼此重叠),然后使用将数据框绑定在一起的解决方法正确绘制它.

library("ggplot2")

x<-data.frame(dat=rep(seq(1,4),3),let=rep("X"))
y<-data.frame(dat=rep(seq(1,4),4),let=rep("y"))

xy<-rbind(x,y)

#what I would like to use with two different data frames
ggplot(NULL,aes(dat))+
  geom_bar(data=y,fill="red",width=0.1,position = "dodge")+
  geom_bar(data=x,fill="blue",width=0.1,position = "dodge")

#what I would like to see only without binding dfs
ggplot(xy,aes(dat,fill=let))+geom_bar(position="dodge")
Run Code Online (Sandbox Code Playgroud)

我正在使用ggplot与其他仅使用单个数据帧的图表保持一致.

Bri*_*ggs 7

ggplot(mapping=aes(x=dat))+
  geom_bar(data=y, aes(x=dat-0.1), fill="red", binwidth=0.1)+
  geom_bar(data=x, fill="blue", binwidth=0.1)
Run Code Online (Sandbox Code Playgroud)

这里的关键是您将数据移动的数量与一个相同binwidth,binwidth并且小于组之间的间距.移位后对数据进行分箱,这样就会影响数据出现在哪个分区中.另外,如果没有binwidth明确设置,分箱的宽度取决于分段的范围(这就是xlim变化和工作时变化的原因)"很好"的圆形值).

在此输入图像描述