ポイント グロブ ( ) のサイズ (たとえば mm 単位) の決定にpointsGrob
失敗するのに、テキスト グロブ ( textGrob
) のサイズの決定に失敗するのはなぜですか?
### puzzled about grobs (not) knowning how big they are:
require(grid)
convertUnit(grobWidth(textGrob("some tex")), "mm") # 16.93mm => fine
convertUnit(grobWidth(pointsGrob(0.5, 0.5)), "mm") # 0mm => ?
convertUnit(grobWidth(pointsGrob(0.5, 0.5, size=unit(3, "mm"))), "mm") ## still 0mm...
私が質問している理由は次のとおりです。テキスト グロブとポイント グロブを並べて配置し、 の値を変更するとcex
、突然 2 つのグロブが重なります (望ましくない動作)。
同様の問題を示す例を次に示します。
gt <- grobTree(pointsGrob(x=.5, y=.5, gp=gpar(cex=4)),
linesGrob(x=0:1, y=.5, gp=gpar(cex=4)),
pointsGrob(x=.5, y=.5, gp=gpar(cex=1)))
pg <- packGrob(frameGrob(vp=NULL), gt,
width = unit(1, "char"),
height = unit(1, "char"))
grid.newpage()
grid.draw(pg)
grid.rect(width=grobWidth(pg), height=grobHeight(pg), gp=gpar(col="red"))
長方形は、グロブの幅と高さが正しくないことを示しています。pg
大きな ではポイントのサイズが「見えません」cex
。これはどのように達成できますか?