Добавление объектов сетки - PullRequest
1 голос
/ 23 июня 2011

Итак, установка такова:

dat <- data.frame(a = c("longnameonthelefthandside"), b = c(sample(10))) 
p <- ggplot(dat, aes(b,a)) + geom_point() + xlab("label")

Я могу настроить метку оси x, передав объекту unit значение hjust:

p + opts(axis.title.x=theme_text(size=12,hjust=unit(0.3,"npc")))

Но есть что-то в добавлении объектов юнитов (возможно, в соответствии с? Юнитами), которые я не понимаю:

u1 <- unit(0.5,"npc")
u2 <- unit(0.25,"npc")
p + opts(axis.title.x=theme_text(size=12,hjust=u1+u2))

выдает следующую ошибку:

Error in grid.Call("L_textBounds", as.graphicsAnnot(x$label), x$x, x$y,  : 
Polygon edge not found
In addition: Warning message:
In validDetails.text(x) : NAs introduced by coercion

В качестве дальнейшего контекста, я пытаюсь соединить несколько загадочный обходной путь через Батиста здесь

Ответы [ 2 ]

2 голосов
/ 23 июня 2011

Вероятно, единица измерения просто неявно преобразуется в числовую на пути к рисованию.Итак, попробуйте это:

grid.lines(c(0.5, 0.5))
grid.text("orzorzorz", y=0.4, hjust=unit(0.25, "npc"))
grid.text("orzorzorz", y=0.5, hjust=unit(0.25, "mm"))
grid.text("orzorzorz", y=0.6, hjust=unit(0.25, "cm"))
grid.text("orzorzorz", y=0.7, hjust=0.25)

и почему u1+u2 вызывает ошибку в следующем:

> c(u1+u2)
$fname
[1] "+"

$arg1
[1] 0.5npc

$arg2
[1] 0.25npc

определенно это не может быть преобразовано в числовое значение.

так, convertUnit - это обходной путь, но достаточно просто hjust = c(u1)+c(u2).

2 голосов
/ 23 июня 2011

Код Батиста включает в себя звонок на convertUnit.Как только вы вставите это обратно в свой код, он создаст сюжет:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...