从R中的条形图中删除条形图的重叠

时间:2014-12-11 19:59:38

标签: r bar-chart overlap

我创建了一个条形图,但两个数据集中的条形图相互叠加。我想知道是否有人可以帮我分开两个数据集的条形,这样它们并排而不是重叠。 x轴的两个类别完全相同。这是我的代码:

h.length.category <- sabdata.dat[,"H_Length_Category"]
h.length.sum <- sabdata.dat[,"H_Length_Sum"]

v.length.category <- sabdata.dat[,"V_Length_Category"]
v.length.sum <- sabdata.dat[,"V_Length_Sum"]

hum.len <- tapply(h.length.sum, list(h.length.category), sum)
ven.len <- tapply(v.length.sum, list(v.length.category), sum)

barplot(hum.len, ylim = c(0,80), las = 2, xlab = "Length (mm)", ylab = "Number of individuals", col = "dark grey")
par(new=T)
barplot(ven.len, ylim = c(0,80), las = 2, xlab = "", ylab = "", axes = F, col = "light grey")
par(new=F)

这是数据的一个子集:

H_Length_Category   H_Length_Sum    V_Length_Category   V_Length_Sum

08-09.9             0               08-09.9             1
10-11.9             0               10-11.9             10
12-13.9             3               12-13.9             31
14-15.9             12              14-15.9             58
16-17.9             30              16-17.9             66
18-19.9             35              18-19.9             77
20-21.9             62              20-21.9             64
22-23.9             63              22-23.9             41

1 个答案:

答案 0 :(得分:1)

我认为正在发生的事情 - 没有看到你的数据 - 是你试图在同一组轴上叠加两个不同的图。因此,您将掩盖首先绘制的内容:

    #make up some data
    x <- c(10, 11, 12, 16)
    y <- c(9, 12, 10, 13)

    barplot(x)
    barplot(y, col = "yellow", add = T) #The add statement is effectively the same as what you coded above

Essentially, an overlaid plot 但是,如果您的所有数据都在一个矩阵中,

    dF <- as.matrix(cbind(x, y))
    barplot(dF, beside = T)

结果可能更接近您所寻找的内容。根据您的数据以及您希望如何呈现它,您可能必须确定矩阵的格式,以显示您想要显示的内容。

A plot with all of the data in a matrix