Я использую следующую формулу, чтобы построить 5 графиков вместе:

my_data <- as.data.frame(datasets::volcano)

layout(matrix(c(1,2,3,4,5,6), 3, 2, byrow = TRUE))
par(mar=c(1,1,1,1))
plot(my_data$V1, my_data$V2)
plot(my_data$V3, my_data$V4)
plot(my_data$V5, my_data$V6)
plot(my_data$V7, my_data$V8)
plot(my_data$V9, my_data$V10)
plot.new()

5 plots

Это работает хорошо, но я теряю масштаб оси Y 1, 3 и 5-го графиков и оси X последнего. Это продолжает происходить для любых будущих, которые я делаю, пока не сделаю dev.off ().

Спасибо!

1
lomper 4 Май 2020 в 17:38

2 ответа

Лучший ответ

Вы можете использовать par(mfrow = c(3, 2)) и настроить свои поля. Возможно, вам придется увеличить размер окна, чтобы вместить участок

my_data <- as.data.frame(datasets::volcano)
par(mfrow = c(3, 2))
par(mar = c(2, 2, 2, 2))
plot(my_data$V1, my_data$V2)
plot(my_data$V3, my_data$V4)
plot(my_data$V5, my_data$V6)
plot(my_data$V7, my_data$V8)
plot(my_data$V9, my_data$V10)

p

2
Allan Cameron 4 Май 2020 в 14:59

В дополнение к решению @AllanCameron - я бы помнил layout, так как оно может быть очень полезным! Также вы можете рассмотреть окно RStudio "Plots" в качестве инструмента предварительного просмотра. Лучше сохраните свои графики с помощью pdf или png, как показано ниже; сюжет будет сохранен в вашем getwd(). Кроме того, вы можете избежать повторного вызова plot, создав sub.cols фрейм данных, который может быть закольцован sapply.

my_data <- as.data.frame(datasets::volcano)
sub.cols <- as.data.frame(matrix(1:10, 2))

png("myPlot01.png", width=400, height=600)
layout(matrix(1:6, 3, 2, byrow=TRUE))
op <- par(mar=c(4.5, 2.5, 1.5, 1.5))  ## set par and store old par
sapply(sub.cols, function(i) plot(my_data[i]))
plot.new()
par(op)  ## restore old par
dev.off()

Если грязная консоль вас раздражает, вы можете сделать invisible(sapply(.)) выше.

1
jay.sf 22 Май 2020 в 18:53