r geom_histogram以不同方式对组进行面元划分

aiqt4smr  于 2023-03-15  发布在  其他
关注(0)|答案(1)|浏览(182)

我试图绘制两个直方图的叠加图,其中一个表示所有数据,另一个表示满足条件的子集。我有一个.csv文件,我导入为 Dataframe ,代码构建一个新的 Dataframe 与类别,和ggplot一起绘制它们。
我的程序代码如下:

dataHaploid=read.csv("Graphes/Hap.csv")

  
  dataHaploid$Group="All Loci"

  
  dht=dataHaploid[dataHaploid$Divergence>.01, ]

  dht$Group="Divergent Loci"

  dataHaploid <- rbind(dataHaploid,dht)

  
  
  dha=dataHaploid[dataHaploid$BetaDist==0, 
    ][dataHaploid[dataHaploid$BetaDist==0, ]$SignalWidth==10, 
    ][dataHaploid[dataHaploid$BetaDist==0, 
    ][dataHaploid[dataHaploid$BetaDist==0, ]$SignalWidth==10, 
    ]$EcolWidth==10, ]
  
  
  dhaa =ggplot(dha, aes(MeanRecombinationRate, fill=Group)) + 
  geom_histogram(alpha=.5, position="identity", bins=25) +
    ylim(0,100)+xlim(0,.5)
dhaa

但是,当我绘制它时,我得到了下面的图形:

由于蓝色是红色的子集,因此不应出现纯蓝色区域,就像在几个箱中一样。此外,当我将所有数据绘制在一起时,我会得到以下结果:

这表明如果装仓方案是一致的,那么无论如何在那些仓中不应该有任何数据。
我不确定在这里要做什么,或者如何调试它;任何帮助都是感激的。
我试过修改构建新数据集的代码,但确认结果集有630个点(原始数据集的500个),130个点符合条件,130个点在第二个bin中。我试过改变bin编号,结果是不同的bin编号--这发生在我的所有子集中,而不仅仅是子集a,我在子集a上包含了代码。
以下R geom_histogram position="identity" inconsistent:如果我设置bin宽度= 0.01,边界= 0而不是定义bin数目,这也持续;还通过xlim和bin的数目来设置bin以使其与该设置一致。

不过,奇怪的是,绘制所有这些图会产生2个空的bin,尽管第一个bin中只有一个纯蓝色的bin:

6yoyoihd

6yoyoihd1#

哎呀,发现了,ylim正在剪切条形,因为数据在那个箱子里有超过100个点。我觉得很傻。当我不能创建一个重现这个问题的数据集时发现了这个问题--因为它需要超过100个点才能导致错误,并且超过了字符限制......不管怎么说,我很欣赏编辑+注解,stackOverflow的新功能

相关问题