我想要做的是使用来自两个不同数据帧的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与其他仅使用单个数据帧的图表保持一致.
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
变化和工作时变化的原因)"很好"的圆形值).