【问题标题】:Embedding a miniature plot within a plot在情节中嵌入微型情节
【发布时间】:2011-10-17 12:46:27
【问题描述】:

是否有人知道将绘图嵌入其他绘图以生成类似于下面样机的一般方法?

我知道在 lattice 中,您可以使用 print(..., more=TRUE, positions=...) 来做到这一点,正如 this question 中所解释的那样,我猜 ggplot 也有解决方案(但我对 ggplot 不太擅长)。问题是我想将使用标准图形包的生存包中的常规图嵌入到格子图中。

提前致谢!

【问题讨论】:

标签: r plot lattice


【解决方案1】:

这是一种相反的方法,ggplot2 图形在基础图形中:

require(ggplot2)
require(grid)

plot(sin, -pi, 2*pi)
qp <- qplot(mpg, wt, data=mtcars)
print(qp, vp=viewport(.8, .75, .2, .2))

【讨论】:

  • 这看起来会非常通用(并且非常简洁),因为也可以嵌入格子图(也使用网格引擎)并且您似乎可以在任何网格上我尝试过的任何网格组合。
  • 感谢您的提示,尽管它不如 Al R. 的回答一般,但它肯定更易于使用。
  • 想看看你能不能解决these histogram insets? :) 我认为他们到达时会很有趣。
  • 我认为的示例中仅缺少required(grid)
  • 然后,如果您使用 ggsave 将其保存为 pdf,则结果文件中出现的唯一图将是最后一个图。
【解决方案2】:

您可以尝试 gridBase 包,它提供了一些集成基础和基于网格的图形(包括 lattice 和 ggplot2)的功能。下面的示例在格子图中嵌入了一个基本图形图。

library(lattice)
library(gridBase)
library(grid) 

plot.new()
pushViewport(viewport())
xvars <- rnorm(25)
yvars <- rnorm(25)
xyplot(yvars~xvars)
pushViewport(viewport(x=.6,y=.8,width=.25,height=.25,just=c("left","top")))
grid.rect()
par(plt = gridPLT(), new=TRUE)
plot(xvars,yvars)
popViewport(2)

更多详情:http://casoilresource.lawr.ucdavis.edu/drupal/node/1007 在这里:http://cran.r-project.org/web/packages/gridBase/vignettes/gridBase.pdf

【讨论】:

  • 非常优雅!正是我希望找到的。
【解决方案3】:

查看 Teaching Demos 包包 TeachingDemos package - 和 subplot() 函数它可能也适用于 lattice - 不过还没有尝试过。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    • 2020-11-15
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多