R-条形图在使用“groups”参数时绘制空值

R-条形图在使用“groups”参数时绘制空值,r,bar-chart,spaces,R,Bar Chart,Spaces,我正在用柱状图绘制在海洋不同深度的几个样本中发现的生物体数量 barchart(density~depth, groups=species, main=list(label="Species composition in Hinlopen",cex=2), ylab="Species density(n pr. m3)", data=species_density_depths_hinlopen, origin=0, auto.key=list

我正在用柱状图绘制在海洋不同深度的几个样本中发现的生物体数量

barchart(density~depth, groups=species,
     main=list(label="Species composition in Hinlopen",cex=2),
     ylab="Species density(n pr. m3)", 
     data=species_density_depths_hinlopen,
     origin=0,
     auto.key=list(space="top",columns=3, title="Species"),
     par.settings = my_settings)
这给了我一些很好的条形图,显示了按深度分组的物种组成。 但是,并不是所有的生物都在每个深度被发现,而条形图仍然为这些生物的所在位置留下了空白。 有没有办法告诉柱状图不要绘制这些空白区域? 以下是目前的情况:

正如您所看到的,这些条之间有几个空白

编辑 可重现的示例:

library(lattice)
dep <- c(replicate(10,10),replicate(10,20))
sp <- c(replicate(7,"Krill"),replicate(7, "Calanus"),replicate(6,"Ctenophora"))
dens <- rnorm(20,mean=5)

animals <- data.frame(species=sp,density=dens,depth=as.factor(dep))

barchart(density~depth, groups=species,
         main=list(label="Species composition in Kongsfjorden (KB3)",cex=2),
         ylab="Species density(n pr. m3)", 
         data=animals)

一种方法是创建一个新的因子,它是所显示的两个因子的叉积,然后在填充它之后,删除空层,然后在自己着色时将其绘制为条形图


真的有很多工作要做。也许有人知道一个更好的主意。如果您发布示例数据,可能会有人对其进行攻击。

目前我不确定如何发布,但为什么要将其排除在外?缺乏不同深度的数据本身可能很有趣。请允许我参考一下电影联系人及其联系方式。我同意缺席可能会很有趣。但它不需要用占用空间的空白空间来表示。我宁愿没有酒吧也不要空房间。这样,现有的酒吧可以更广泛,更容易看到。我的问题更为严重的是,其他地区的总水体中存在更多物种。酒吧太多了,以至于每个酒吧都变得很小,因此清除空的空间就更重要了。想想看,既然在空白处没有标签,你就不知道它应该是什么。这是一个有趣的问题。我认为您需要创建一个新的因子变量,它是其他两个变量的叉积,删除空的级别,然后自己对它们进行排序和着色。我不知道有什么自动化的方法可以做到这一点,所以您可能需要自己分解数据,并使用并排条形图。如果你喜欢冒险的话,我建议你使用布局或者甚至parfig。前者更易于使用,但不允许单一地块的正面,而后者则为您提供了大量的线索。查看比较。您也可以尝试ggplot、libraryggplot2 ggplotdata=动物、aesx=深度、y=密度、填充=物种+几何图形barstat=身份、位置=位置\道奇。只是不确定你想要的是什么高度的酒吧,因为每个深度,你有多个密度为每个物种添加了一些样本数据到我原来的帖子刚刚。