【问题标题】:In plot() for R, box() overlaps with axis lines in R [duplicate]在 R 的 plot() 中,box() 与 R 中的轴线重叠 [重复]
【发布时间】:2020-11-16 03:25:28
【问题描述】:

当我将 box() 与 plot() 一起使用并添加一些轴时,刻度线附加到轴的线与框线重叠,因此您会在轴上看到一条加粗的线。如何消除这种重叠?

查看代码和图表了解更多:

x <- seq(-pi,pi,0.1)
plot(x, sin(x), axes=FALSE)
axis(side=1, at=seq(-2, 1, by = 1))
axis(side=2, at=seq(-0.5, 0.5, by = 0.3))
box()

所以你可以在 x 和 y 轴上看到中心似乎有一条较粗的“双”线,看起来很乱。

注意:我知道消除此问题的一种方法是创建axes=TRUE,但我有很多规范要添加,因此我需要创建axes=FALSE,然后将axis() 作为单独的函数添加。

【问题讨论】:

  • 我无法复制这个。您使用的是哪种设备?它是 RStudio 图形设备吗?线条应该重叠 - 只是您不应该看到重叠,因为线条的宽度和颜色相同。如果通过执行dev.off() 重置您的设备然后再次运行您的代码没有帮助,看起来好像您将lwd = 0.5 添加到您的axis 调用(或者可能将lwd = 2 添加到您的box 调用),明显的重叠将消失。
  • 这能回答你的问题吗? R Base Plot suppress axis line but show ticks

标签: r plot axis-labels


【解决方案1】:

您必须使用colcol.ticks 才能获得所需的输出。代码如下:

x <- seq(-pi,pi,0.1)
plot(x, sin(x), axes=FALSE)
axis(side=1, at=seq(-2, 1, by = 1),  col = NA, col.ticks = 1)
axis(side=2, at=seq(-0.5, 0.5, by = 0.3), col = NA, col.ticks = 1)
box()

现在剧情没有那些双线

here 讨论了同样的问题。谢谢

【讨论】:

  • 请标记为重复而不是解释现有答案。