【问题标题】:R lattice multiple plot page how to put text in page marginR lattice 多个绘图页面如何将文本放在页边距中
【发布时间】:2016-06-08 05:08:10
【问题描述】:

我想在使用 R lattice 创建的绘图页面上添加一个标题。例如,我可以在一个页面上放置四个图,如下所示:

#load lattice
require(lattice). 
# data
a<-c(1,3,4)
b<-c(1,2,3)
# make plots
plt1<-xyplot(a~b,main="plt1")
plt2<-xyplot(a~b,main="plt2")
plt3<-xyplot(a~b,main="plt3")
plt4<-xyplot(a~b,main="plt4")
# plot plots
plot(plt1, split=c(1,1,2,2),newpage=FALSE)
plot(plt2, split=c(1,2,2,2),newpage=FALSE)
plot(plt3, split=c(2,1,2,2),newpage=FALSE)
plot(plt4, split=c(2,2,2,2),newpage=FALSE)

现在如何将标题“My Page of Plots”放在 plt1 和 plt3 上方的上边缘居中?

【问题讨论】:

    标签: r plot margin lattice


    【解决方案1】:

    您可以使用grid 推送视口并添加标题:

    library(grid)
    vp2 <- viewport(x = 0.5, y = 1, width = 1, height = .1, just = c("center", "top"))
    pushViewport(vp2)
    grid.rect(gp = gpar(vol = "blue")) # just to see dimensions/position of the viewport
    grid.text("My Title", gp = gpar(cex = 2))
    

    您必须稍微调整一下视口的位置和尺寸。理想情况下,您还可以在 lattice 调用中添加上边距,以便为标题创建一些空白。

    【讨论】:

    • 谢谢!看起来它正朝着正确的方向前进……但是如何在页面上而不是在每个绘图上设置上边距来为标题腾出空间?我的理解是格子调用作用于每个情节而不是页面?
    • @Markm0705 split 给你一个固定的布局 - position 给你更多的控制。见?print.trellis。因此,使用position=c(0,.4,.5,.8) 然后使用c(.5,.4,1,.8)c(0,0,.5,.4)c(.5,0,1,.4) 将为标题留下20% 的空闲空间。
    • 戴夫谢谢,这听起来像是我正在寻找的解决方案
    猜你喜欢
    • 2013-02-24
    • 2015-12-10
    • 2022-10-05
    • 2016-08-30
    • 2020-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多