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

时间:2016-08-18 08:45:09

标签: r ggplot2 gtable

我正在尝试按照here说明如何创建双y轴图(是的,我知道)。我的代码是here

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

enter image description 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

所以,我无法检查问题是否是我在转录时引入的错误。

1 个答案:

答案 0 :(得分:1)

gist中的代码无法运行(并且它也有点复杂)。

要理解为什么线条没有对齐,请考虑以下示例:

  • axis1:范围:0 - 1. 0.5的值介于0和1之间。
  • axis2:范围:0 - 10.值5介于0到10之间。

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

  • axis1:范围:0 - 1.1。 0.5的值在0和1之间为0.5 / 1.1 = 0.45。
  • axis2:范围:0 - 10.1。 5的值在0到10之间是5 / 10.1 = 0.495。
  • 结果:错误对齐的行。

您不应该为每个轴添加常量,该值需要与比例成正比。