在R中移除箱线图框架的顶部和右侧边框

15

有人知道如何在 R 中删除箱线图框架的顶部和右侧边框吗?我已经尝试了 frame=FALSE 参数,但是它会删除除了左侧(y轴)以外的所有边框。我只想显示 x 轴和 y 轴。

提前感谢!


7
如果你已经使用了frame=FALSE,想要再次添加边框,可以使用box(bty="l") - thelatemail
当我使用bty命令时,出现了以下错误:box(bty = "1") : 图形参数“bty”的值无效。 - user3431483
1
那是小写字母 L(“l”),不是数字 1。 - thelatemail
3个回答

6
我认为你需要在绘图后使用axis(side=1)
x <- 1:5
boxplot(x, frame.plot = FALSE)
axis(side = 1)

这样可以获得以下结果:

这会给出

在此输入图像描述


2
这个可以工作,但是底部边框没有完全延伸到左侧。另外,我已经指定了xaxt="n",但是刻度线会随着axis(side = 1)回来。有什么办法可以去掉新的刻度线并延长底部边框以满足y轴?谢谢! - user3431483

3
  1. 无坐标轴的图表
    boxplot(x, axes=F)
  1. 添加一个类型为“l”的框,就像thelatemail建议的那样
    box(bty="l")
  1. 在所需数值处添加坐标轴刻度。
    axis(2)
    axis(1) #if you really want x-axis ticks here...

enter image description here


1
为了去除刻度线,您需要将刻度线宽度指定为零(lwd.ticks=0)。要确保x和y轴相遇有些麻烦,您需要:
  1. 使用ylim=...指定y轴的下限
  2. 使用pos=...指定x轴的高度
  3. 通过添加一条水平线来扩展x轴以达到y轴-一种方法是使用abline。
将上述内容整合到上面的示例中:
x <- 1:5
boxplot(x, frame.plot = FALSE,ylim=c(0,5))
axis(side=1, pos=0, lwd.ticks=0)
abline(h=0)

Barplot with frame removed


这个解决方案看起来仍然不太好,因为你可以清楚地看到较短的轴在哪里(我不会把这个放在出版物中)。这是因为你添加的x轴并不精确地在零点上。如果你增加添加线的线条粗细,它看起来会好一些,但仍然感觉像一个hacky的解决方案:abline(h=0, lwd = 1.5) - colin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接