首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >R:我如何将两个箱形图放在一起,使两者保持相同的y范围?

R:我如何将两个箱形图放在一起,使两者保持相同的y范围?
EN

Stack Overflow用户
提问于 2011-07-21 18:00:49
回答 1查看 68.7K关注 0票数 20

假设我有两个数据集,一个是y-range min0:max0,另一个是y-range min1:max1。如何使用合理的y范围min(min0,min1):max(max0,max1)将两个箱形图放在一个图中

这是我尝试过的:

代码语言:javascript
复制
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范围,也会挤压两个图,而我希望它们是正方形的。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-21 18:32:07

代码语言:javascript
复制
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中的一次尝试:

代码语言:javascript
复制
# 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)

在晶格中:

代码语言:javascript
复制
# Using lattice
library(lattice)
bwplot(~ val|sub.type+d.type ,d)

请注意,基于网格的解决方案使您不必指定限制;只需指定结构,软件就可以完成剩下的工作。

票数 40
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6774339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档