Встраивание миниатюрного сюжета в сюжет - PullRequest
21 голосов
/ 17 октября 2011

Кто-нибудь знает общий способ встраивания графиков в другие графики для создания чего-то вроде макета ниже?

Я знаю, что в решетке вы можете сделать это с print(..., more=TRUE, positions=...), как объяснено в thisвопрос , и я думаю, у ggplot тоже есть решение (но я не очень хорош с ggplot).Проблема в том, что я хочу встроить обычный график из пакета для выживания, использующего стандартный графический пакет, в решетчатый график.

A mockup of an embedded plot

Заранее спасибо!

Ответы [ 3 ]

26 голосов
/ 17 октября 2011

А вот способ сделать это наоборот: графика ggplot2 в базовой графике:

require(ggplot2)
require(grid)

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

enter image description here

18 голосов
/ 17 октября 2011

Вы можете попробовать пакет 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 голосов
/ 17 октября 2011

Ознакомьтесь с пакетом пакета Teaching Demos Пакет TeachingDemos - и функцией subplot() Он также может работать на решетке - хотя и не пробовал.

...