我想在单个图中绘制R中的多个箱线图,并将它们成对分组。我是R的初学者,虽然有几个线程处理同一主题(R中的多个箱线图),但我找不到解决此问题的全面方法。我只想在可能的情况下使用基本图形。
我有 10 组值,它们都包含 30 个值(可以是任何正值)。在这 10 个集合中,5 个属于 1 型,另外 5 个属于 2 型。我的目标是有十个箱线图(每组值一个),并将每组类型 1 与一组类型 2 组合在一个图表中. 最后,我想要 5 组数据,每组包含两个箱线图。我还希望每个集群(A、B、C、D、E)有 1 个 x-label,并且类型 1 的数据为红色,类型 2 的数据为绿色。
到目前为止,我的代码是:
A1data <- read.table("A1data.csv",header=TRUE,sep=";")
B1data <- read.table("B1data.csv",header=TRUE,sep=";")
C1data <- read.table("C1data.csv",header=TRUE,sep=";")
D1data <- read.table("D1data.csv",header=TRUE,sep=";")
E1data <- read.table("E1data.csv",header=TRUE,sep=";")
A2data <- read.table("A2data.csv",header=TRUE,sep=";")
B2data <- read.table("B2data.csv",header=TRUE,sep=";")
C2data <- read.table("C2data.csv",header=TRUE,sep=";")
D2data <- read.table("D2data.csv",header=TRUE,sep=";")
E2data <- read.table("E2data.csv",header=TRUE,sep=";")
A1 <- 100*(A1data$x-A1data$y)/A1data$x
B1 <- 100*(B1data$x-B1data$y)/B1data$x
C1 <- 100*(C1data$x-C1data$y)/C1data$x
D1 <- 100*(D1data$x-D1data$y)/D1data$x
E1 <- 100*(E1data$x-E1data$y)/E1data$x
A2 <- 100*(A2data$x-A2data$y)/A1data$x
B2 <- 100*(B2data$x-B2data$y)/B1data$x
C2 <- 100*(C2data$x-C2data$y)/C1data$x
D2 <- 100*(D2data$x-D2data$y)/D1data$x
E2 <- 100*(E2data$x-E2data$y)/E1data$x
A <- cbind(A1,A2)
B <- cbind(B1,B2)
C <- cbind(C1,C2)
D <- cbind(D1,D2)
E <- cbind(E1,E2)
test <- cbind(A,B,C,D,E)
boxplot(test,col=c(2,3),legend(1000,10,c("type 1","type 2)))
这会产生错误“strwidth中的错误(图例,单位=“用户”,cex = cex,字体= text.font):尚未调用plot.new”。但是,如果我将最后一行更改为:
boxplot(test,col=c(2,3))
我获得了 10 个正确着色的箱线图,但我找不到将它们成对分组的方法,也找不到正确的图例。有没有一种简单的方法可以做到这一点,还是我需要以不同的方式组织我的数据?如果是这样,感谢您指出正确的方向。