1
имеет ли кто-нибудь идею, как я могу делать несколько графиков в R с функциями графика, которые не поддерживают стандартные многострочные инструменты, такие как mfrow
, layout
или split.screen
? В основном я пытаюсь построить эффект, сюжет, обычный сюжет и Ctree сюжет в одном графике, что-то со следующей планировкой:Проблемы с несколькими графиками в R
layout(matrix(c(1,2,3), ncol = 3))
layout.show(3)
dev.off()
Любая помощь будет хорошо. Мои попытки со стандартными функциями приведены ниже.
set.seed(pi)
DF <- data.frame(x = c(rnorm(50, 3), rnorm(50, 10)),
y = c(rnorm(50, 3), rnorm(50, 10)))
ct <- party::ctree(y ~ x, data = DF)
mod <- lm(y ~ x, data = DF)
eff <- effects::effect("x", mod)
## Attempt 1 (mfrow):
par(mfrow = c(1,3))
plot(eff)
plot(DF$x, DF$y)
plot(ct)
par(mfrow = c(1,1))
dev.off()
## Attempt 2 (layout):
layout(matrix(c(1,2,3), ncol = 3))
plot(eff)
plot(DF$x, DF$y)
plot(ct)
dev.off()
## Attempt 3 (split.screen):
split.screen(rbind(c( 0, 1/3, 0, 1),
c(1/3, 2/3, 0, 1),
c(2/3, 1, 0, 1)))
screen(1)
plot(ct)
screen(2)
plot(DF$x, DF$y)
screen(3)
plot(eff)
close.screen(all.screens = TRUE)
dev.off()
функции, кажется, использует графику сетки на основе. Посмотрите на код 'party ::: plotTree'. Поэтому вам придется комбинировать их с помощью 'viewports()'. Я не знаком с ними, но вы можете попробовать прочитать «pushViewport», «popViewport» и т. Д. –
Отлично! С сеткой и некоторыми усилиями я сделал это. Я отправляю ответ. Большое спасибо. – Daniel
Подает четкий определенный вопрос, проводит исследования и делится отличным ответом. Нам нужно больше таких людей, как вы, на этом сайте, молодцы. –