为什么 barplot2 只在 R 中为 3/4 条着色?

Why does the barplot2 only color 3/4 bars in R?

我正在尝试用 4 种不同的颜色制作数据集(太长而无法上传)的 barplot2。问题是,只有 3/4 是彩色的,它会跳过第一栏。我已经在 Google 上搜索以检查我写的是否正确,但它应该是正确的。我也试过用数字而不是像

这样的名字来写颜色
col = 3:4:5:6

但我得到了相同的结果,它跳过了第一个小节。

我尝试过的: 在问这个问题之前,我在 Whosebug 上看过这里,但我没有找到解决我的问题的方法,而且我也试过 Google。由于我的数据集太长,我只上传相关代码,希望你喜欢:)

## Barplot
library(gplots)
CIA <- t.test(tmp3)$conf.int
CIB <- t.test(tmp5)$conf.int
CIC <- t.test(tmp10)$conf.int
CID <- t.test(tmp17)$conf.int
lower <- c(CIA[1], CIB[1], CIC[1], CID[1])
upper <- c(CIA[2], CIB[2], CIC[2], CID[2])

## install.packages( pkgs= "gplots")

barplot2(c(mean3, mean5, mean10, mean17), 
plot.ci = TRUE, ci.l = lower, ci.u = upper, 
col = c("red", "blue", "yellow", "pink"), 
main ="House 3 & 5 overlap", ylim= c(0,6), 
names = c("3","5","10","17"))

结果:

编辑:没有 na 的:

tl;dr 您的第一个柱状图的高度可能有一个 NA 值。

对于这个可重现的例子,我无法复制:

library(gplots)
lower <- c(1,2,3,4)
upper <- c(3,4,5,6)

barplot2(c(2,3,4,5),
         plot.ci = TRUE, ci.l = lower, ci.u = upper, 
         col = c("red", "blue", "yellow", "pink"), 
         main ="House 3 & 5 overlap", ylim= c(0,6), 
         names = c("3","5","10","17"))

这是 gplots 2.17.0,R-devel。

但是,如果我用 NA 作为第一个值重新绘制绘图,我得到的结果与你的非常相似:

barplot2(c(NA,3,4,5),
         plot.ci = TRUE, ci.l = lower, ci.u = upper, 
         col = c("red", "blue", "yellow", "pink"), 
         main ="House 3 & 5 overlap", ylim= c(0,6), 
         names = c("3","5","10","17"))