R:双 y 轴 panel.grid.major 未对齐

R: Dual y-axis panel.grid.major not aligning

我正在尝试按照说明进行操作 here on how to create a dual y-axis plot (yes, I know). My code is here

但是,在输出中,一些主要网格线略微未对齐(见红框),而其中一些则完全对齐。我不确定是什么导致了其中一个地块的扩张。我重写了该站点上的代码以更好地理解它,并且可能在某处引入了错误。

一个简单的解决方法是关闭其中一个图上的网格线,但这似乎隐藏了问题而不是修复它。


编辑:

我试过运行the original code这里不变,我运行在第130行出现如下错误

> ticks$grobs[[1]]$x <- ticks$grobs[[1]]$x - unit(1, "npc") + tml
Error in Ops.unit(ticks$grobs[[1]]$x, unit(1, "npc")) : 
  both operands must be units

因此,我无法检查问题是否是我在 t运行script 时引入的错误。

您在 gist 中的代码没有 运行(而且它也有点复杂)。

要了解线条未对齐的原因,请考虑以下示例:

  • axis1: range: 0 - 1. 0.5 的值介于 0 和 1 之间。
  • axis2: range: 0 - 10. 5 的值在 0 和 10 之间。

现在在你的图表中你有(类似的东西)

  • 轴 1:范围:0 - 1.1。 0.5的取值是0到1之间0.5/1.1 = 0.45.
  • 轴 2:范围:0 - 10.1。 5的值在0到10之间是5/10.1 = 0.495.
  • 结果:线条未对齐。

您不应该为每个轴添加一个常数,该值需要与刻度成正比。