1

したがって、セットアップは次のようになります。

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

unitオブジェクトをhjust次の場所に渡すことで、x軸のラベルを調整できます。

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

しかし、私が把握していないユニットオブジェクト(?unitによると可能性があります)を追加することについて何かがあります:

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

さらなる文脈として、私はここでバプティストを介してやや不可解な回避策をつなぎ合わせようとしています

4

2 に答える 2

2

Baptisteのコードには、への呼び出しが含まれていますconvertUnit。これをコードに戻すと、プロットが生成されます。

p + opts(
  axis.title.x=theme_text(size=12,hjust=convertUnit(u1+u2, "npc", value=TRUE))
)
于 2011-06-23T16:21:42.010 に答える
2

おそらく、hjustの単位は、描画の途中で暗黙的に数値に変換されます。だから、これを試してみてください:

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)十分です。

于 2011-06-23T16:27:09.323 に答える