Каждый раз, когда я запускаю этот код, первый график просто перезаписывает предыдущий. Разве в R нет способа разделить, чтобы получить два сюжета?
plot(pc)
title(main='abc',xlab='xx',ylab='yy')
plot(pcs)
title(main='sdf',xlab='sdf',ylab='xcv')
Каждый раз, когда я запускаю этот код, первый график просто перезаписывает предыдущий. Разве в R нет способа разделить, чтобы получить два сюжета?
plot(pc)
title(main='abc',xlab='xx',ylab='yy')
plot(pcs)
title(main='sdf',xlab='sdf',ylab='xcv')
Если вы просто хотите, чтобы одновременно открывались два разных окна построения графиков, используйте dev.new
, например.
plot(1:10)
dev.new()
plot(10:1)
Если вы хотите нарисовать два графика в одном окне, тогда, как упоминал Шейн, установите параметр mfrow
.
par(mfrow = c(2,1))
plot(1:10)
plot(10:1)
Если вы хотите попробовать что-то более продвинутое, вы можете взглянуть на решетчатую графику или ggplot, оба из которых отлично подходят для создания условных графиков (графиков, где разные подмножества данных появляются в разных кадрах).
Пример решетки:
library(lattice)
dfr <- data.frame(
x = rep(1:10, 2),
y = c(1:10, 10:1),
grp = rep(letters[1:2], each = 10)
)
xyplot(y ~ x | grp, data = dfr)
Пример ggplot. (Сначала вам нужно загрузить ggplot из CRAN.)
library(ggplot2)
qplot(x, y, data = dfr, facets = grp ~ .)
#or equivalently
ggplot(dfr, aes(x, y)) + geom_point() + facet_grid(grp ~ .)
mfcol
. Он заполняет ваши графики по столбцам, что соответствует тому, как заполняется любой другой объект в R (ну, в основном, матрицы). Только что открыл это. Мне всегда было интересно, почему участки заполняются построчно ... не думаю, что когда-нибудь вернусь к mfrow
!
- person MichaelChirico; 12.05.2016
Попробуйте использовать par
перед тем, как строить график.
par(mfrow = c(2, 1))
Вы также можете попробовать команду макета:
Попробуйте layout(1:2)
plot(A)
plot(B)
попробуйте команду x11()
перед каждым графиком, вот пример:
x11()
plot(1:10)
x11()
plot(rnorm(10))
Это приведет к разным окнам сюжета. Вы можете добавить команду «par» к любому из этих x11()
окон и получить больше разнообразных графиков, то есть 4 графика в одном окне, а большой график в другом окне.
Если вы хотите, чтобы 2 графика были в отдельных окнах или файлах, вы можете выбрать новые устройства перед вызовом каждой команды построения. Видеть:
? Устройства
И,
? dev.cur
Альтернативный ответ - назначить сюжет как объект, а затем вы можете отобразить его, когда захотите, т.е.
abcplot<-plot(pc) title(main='abc',xlab='xx',ylab='yy')
sdfplot<-plot(pcs) title(main='sdf',xlab='sdf',ylab='xcv')
abcplot # Displays the abc plot
sdfplot # Displays the sdf plot
abcplot # Displays the abc plot again
plot
возвращает NULL
. Вы не можете сохранить детали графика таким образом. Если вы используете графику на основе grid
(например, lattice
), то то, что вы предлагаете, возможно, например p1 <- xyplot(y~x); print(p1)
.
- person Richie Cotton; 30.11.2009