r - R:如何将两个箱形图彼此相邻放置,并保持两个相同的y范围?

标签 r plotmath

假设我有两个数据集,一个具有y范围[min0:max0],另一个具有y范围[min1:max1]。如何将两个箱形图以合理的y范围[min(min0,min1):max(max0,max1)]彼此相邻放置?

这是我尝试过的:

d0 <- matrix(rnorm(15), ncol=3)
d1 <- matrix(rnorm(15), ncol=3)

par(mfrow = c(1, 2))
boxplot(d0)
usr <- par("usr")
plot.new()
par(usr = usr)
boxplot(d1, add = TRUE)


但这只会使第一个图保持在y范围内,而且还会挤压两个图,而我希望它们是正方形的。

有任何想法吗?

最佳答案

d0 <- matrix(rnorm(15), ncol=3)
d1 <- matrix(rnorm(15), ncol=3)

# Using base R graphics
lmts <- range(d0,d1)

par(mfrow = c(1, 2))
boxplot(d0,ylim=lmts)
boxplot(d1,ylim=lmts)




您可能还想考虑使用latticeggplot2软件包使用网格图形进行此操作的方法。

这是ggplot2中的一种尝试:

# Using ggplot2
library(ggplot2)
d <- data.frame(d.type=c(rep(0,15),rep(1,15)),sub.type=rep(c('A','B','C'),10),val=rnorm(30))

p <- ggplot(d, aes(factor(sub.type), val)) 
p + geom_boxplot() + facet_grid(. ~ d.type)




并在格子中:

# Using lattice
library(lattice)
bwplot(~ val|sub.type+d.type ,d)




注意基于网格的解决方案如何避免您必须指定限制;您指定结构,其余的工作由软件完成。

关于r - R:如何将两个箱形图彼此相邻放置,并保持两个相同的y范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6774339/

相关文章:

r - 根据 R 中的子字符串创建列

r - 给定任意表达式或字符串,确定运行表达式所需的变量

r - 我正在尝试按特定条件将 2 行数据合并或聚合为 1 行

r - 如何修复在 Linux/Fedora 31 上的 R 中未正确显示的度数符号

r - 如何展平包含列表的 R 数据框?

html - 是否可以使用垂直滚动条在 R markdown 中的一个 block 中显示多个图像

r - 如何在R中的plotmath中写远小于符号(<<)?

r - 带下标的 Unicode 字符

r - plotmath 表达式中的斜体无法在 ggplot 中呈现为粗体

r - 减去作为 plotmath 中的指数(在 ggplot2 图例中)