r - 多方体中没有空间的盒子

标签 r graphics plotrix

假设数据

set.seed(42)
a <- rnorm(100)
b <- rnorm(100)+1

我想使用multhist()并排绘制。

multhist(list(a,b), yaxs="i")

现在我想在它们周围画一个框

box(which = "plot", lty = "solid")

这给了我

using multhist

框的底线和条之间有一些空间。

如果我使用 hist() 只绘制一张图,则输出在方框和条形之间不会有间隙:

using 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/

相关文章:

graphics - 什么是顶点着色器和像素着色器?

将鼠标位置转换为世界位置 OpenGL

r - R 中两个极坐标图重叠和堆叠的集成版本

r - 单击按钮后在 Shiny 应用程序的主面板中显示文本

r - 在R中分组后选择聚合列的第n个值

Android图形效果整个 Canvas

r - ggplot2 极坐标图箭头

r - axis.break和ggplot2或gap.plot?情节可能太复杂

中间重新整形

删除 R 中的异常值