假设数据
set.seed(42)
a <- rnorm(100)
b <- rnorm(100)+1
我想使用multhist()
并排绘制。
multhist(list(a,b), yaxs="i")
现在我想在它们周围画一个框
box(which = "plot", lty = "solid")
这给了我
框的底线和条之间有一些空间。
如果我使用 hist()
只绘制一张图,则输出在方框和条形之间不会有间隙:
是否有不同的技巧可以在 multhist()
中获得这样的输出?
最佳答案
我认为设置 @KamranEsmaeili 提到的 ylim 是一个标准解决方案。这里我提供了一个技巧性的方法,不需要手动设置上限40。
multhist()
基于内置的 barplot()
,它始终将绘图区域的 y 坐标下限设置为小于 0。可以使用 par("usr")[3]
来检查这一事实。我刚刚想出了一个棘手的方法,将框类型调整为 "7"
来抑制底线,并通过 abline(h = 0)
在 0 处添加新的底线>.
library(plotrix)
set.seed(42)
a <- rnorm(100)
b <- rnorm(100) + 1
multhist(list(a,b))
#---------------------------------
box(bty = "7") # bty is one of "o"(default), "l", "7", "c", "u", and "]".
abline(h = 0)
编辑
如果你不喜欢右线超出x轴,那么你可以用rect()
替换box()
,这样你就可以指定自己四个面。记得添加xpd = TRUE
,否则线宽会看起来比y轴细。
multhist(list(a,b))
x <- par("usr")
rect(x[1], 0, x[2], x[4], xpd = TRUE)
关于r - 多方体中没有空间的盒子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61141553/