我有一个多面板格子图。它有偶数个等宽的列。我想在各列中居中文本。
有时,这很容易做到。例如,xlab
andmain
参数通常可以很好地处理这项工作。但我想要一个更灵活的解决方案。(我有很多字符串,想将它们放置在不同的高度,但始终位于列的中心。)
grid.text("Label", x = unit(.5, "npc"), y = unit(yPos, "npc"))
当图形在面板外没有注释时将起作用。但是当它这样做时——例如,当我使用scales
参数创建行标签时——grid.text()
以这种方式使用不会使文本居中。这是一个最小的例子:
dataToPlot <- data.frame(x = 1:2, y = 1:2, panel = c('a', 'b'))
plot1 <- xyplot(
y ~ x | panel,
data = dataToPlot,
layout = c(2,1),
ylab = '',
xlab = '',
scales = list(
x = NULL,
y = list(
draw = TRUE,
labels = c("Label 1", "Label 2"),
at = c(1.8, 1.4))))
print(plot1)
grid.text("XXX", x = unit(.5, "npc"))
“XXX”没有居中。我怎样才能把它居中?
我想我可以在没有行标签的情况下绘制图形(即,不提供scales
参数),使用grid.text("Label", x = unit(.5, "npc"), y = unit(yPos, "npc"))
,然后grid.text()
再次使用来绘制行标签。但是有没有更简单的解决方案?