Я делаю графику, используя сетку, и хочу нарисовать текст.Я столкнулся с проблемой при указании координат текста.
В частности, я обнаружил, что могу использовать как прямую единицу, такую как unit(1, "native")
, так и выражение, которое оценивается как единицу, такое как unit(1, "native") + unit(1, "mm")
.Но как только в выражении появятся две собственные единицы измерения, текст выводится не там, где я его ожидаю, а в позиции, которая может использовать единицы npc.
В следующем MWE я бы ожидал "3"быть напечатанным справа от середины (0 в нативных единицах), но это напечатано далеко налево.
require(grid)
grid.newpage()
vp.data.region <- viewport(x = unit(0.5, "npc"), y = unit(0.5, "npc"), width = unit(0.8, "npc"), height = unit(0.8, "npc"), xscale=c(-1,1), yscale=c(-1,1), name = "data region")
pushViewport(vp.data.region)
grid.xaxis()
grid.yaxis()
grid.text("1", unit(0, "native"),unit(0, "native")) #places the text where it should be
grid.text("2", unit(0, "native") + unit(10, "mm"), unit(0, "native")) # it is possible to use an expression adding mixed units
grid.text("3", unit(0.6, "native") - unit(0.5, "native") + unit(1, "mm") , unit(0, "native")) # suddenly, it looks like the unit expression is being interpreted as npc?
![enter image description here](https://i.stack.imgur.com/KjGzV.png)
В чем причина этой проблемы и как ее избежать?Обратите внимание, что было бы очень трудно указать единицу с одним выражением, потому что я начинаю с точки, уже указанной как собственные единицы измерения плюс несколько миллиметров, и мне нужно расположить текст на некотором расстоянии от него, которое я должен снова вычислить, используяи родные единицы и миллиметры.