对称直方图

Symmetrical histograms

我想制作一些对称的直方图来显示随时间变化的蝴蝶丰度。这是一个显示我尝试创建的图表形式的网站:http://thebirdguide.com/pelagics/bar_chart.htm

为方便起见,我将使用 iris 数据集。

library(ggplot2)

g <- ggplot(iris, aes(Sepal.Width)) + geom_histogram(binwidth=.5) 
g + coord_fixed(ratio = .003)

基本上,我想在 x 轴下方镜像此直方图。另一种思考该问题的方法是创建一个具有不同箱子的水平小提琴图。我查看了 plotrix 包和 ggplot2 文档,但在任何一个地方都没有找到解决方案。我更喜欢使用 ggplot2,但 base R、lattice 或其他包中的其他解决方案也可以。

没有你的确切数据,我只能提供一个大概的编码解决方案,但这对你来说是一个开始(如果你添加更多细节,我很乐意帮助你调整情节)。这是代码:

library(ggplot2)
noSpp <- 3
nTime <- 10
d <- data.frame(
    JulianDate = rep(1:nTime , times = noSpp),
    sppAbundance    = c(c(1:5, 5:1),
                c(3:5, 5:1, 1:2),
                c(5:1, 1:5)),
    yDummy = 1,
    sppName = rep(letters[1:noSpp], each = nTime))

ggplot(data = d, aes(x = JulianDate, y = yDummy, size = sppAbundance)) +
    geom_line() + facet_grid( sppName ~ . ) + ylab("Species") +
    xlab("Julian Date")

这是数字。