我想在包splitTextGorb
中使用RGraphics
为基础图添加一个多行文本。我尝试了以下但是这不起作用(即文字没有在图上显示)
layout(matrix(c(1,2), nrow=2, byrow=TRUE), heights = c(1,1.5))
plot(...)
grob = splitTextGrob("This is my text")
plot.new()
vp.BottomRight <- viewport(height=unit(.5, "npc"), width=unit(0.5, "npc"),
just=c("left","top"),
y=0.5, x=0.5)
print(grob, vp = vp.BottonRight)
我知道mtext
是一个向基础图添加文字的选项,但我想特别使用splitTextGrob
,因为它提供了mtext
或{{1}的一些灵活性没有。
任何帮助将不胜感激。谢谢!
答案 0 :(得分:1)
您希望将grid.draw()
用于grob和gTree对象。
grid.text()
仅适用于text和plotmath表达式。
答案 1 :(得分:1)
这使用gridBase包将文本添加到绘图的当前视口。
library(RGraphics)
library(gridExtra)
library(gridBase)
layout(matrix(c(1,2), nrow=2, byrow=TRUE))
# First base plot
plot(1:10)
# Grid regions of base plot
vps <- baseViewports()
pushViewport(vps$inner, vps$figure, vps$plot)
# Text grob
grob <- splitTextGrob("This is my text")
vp.BottomRight <- viewport(height=unit(.1, "npc"), width=unit(0.1, "npc"),
just=c("left","top"),
y=0.2, x=0.8 )
# Add text grob
pushViewport(vp.BottomRight)
grid.draw(grob)
upViewport(4)
# Second plot
plot(1:10)
vps <- baseViewports()
pushViewport(vps$inner, vps$figure, vps$plot)
pushViewport(vp.BottomRight)
grid.draw(grob)