【问题标题】:Plotting several groups of box plots side-by-side in R在 R 中并排绘制几组箱形图
【发布时间】:2011-10-12 10:17:42
【问题描述】:

我试图在同一个图中绘制两个箱形图,每个都属于同一类别。 我可以单独生成箱线图,但是当我尝试将它们放在同一个图表上时,我感到很困惑。

这是我目前所拥有的:

a<-matrix(nrow=100,ncol=3,data=runif(300,max=2))
b<-matrix(nrow=100,ncol=3,data=runif(300,max=1))
colnames(a)<-c("case 1","case 2","case 3")
colnames(b)<-c("case 1","case 2","case 3")
boxplot(cbind(a,b))

此图产生 6 个箱线图,前 3 个用于 a,然后 3 个用于 b。

是否有我缺少的技巧/简单选项会给我 a 和 b 的第一个值,然后是第二组值,最后是第三组值,所有这些都以这样的方式绘制,x 轴上只有三个刻度,每组一个?

非常感谢任何指针,

伊恩

【问题讨论】:

    标签: r plot boxplot


    【解决方案1】:
    boxplot(a, at = 0:2*3 + 1, xlim = c(0, 9), ylim = range(a, b), xaxt = "n")
    boxplot(b, at = 0:2*3 + 2, xaxt = "n", add = TRUE)
    axis(1, at = 0:2*3 + 1.5, labels = colnames(a), tick = TRUE)
    

    注意ylim = range(a, b) 参数。绘图比例由第一个命令确定,但如果 b 包含超出 a 值范围的值(不是在这种情况下,而是尝试交换 a 和 b),它们将位于绘图之外。这就是为什么通常您应该在此处指定 ylim。

    你也可以在axis()命令中设置tick = FALSE,我觉得这样更好。 如果您不喜欢组之间的空间,请使用 0:2*2 而不是 0:2*3,并适当更改 xlim。

    【讨论】:

    • 太棒了!谢谢一百万
    猜你喜欢
    • 2020-04-29
    • 2018-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-23
    • 2020-05-30
    • 1970-01-01
    相关资源
    最近更新 更多