Как построить несколько графиков, разделяющих обе оси x и y в формате два на два в R?
Я хотел бы представить свои данные в формате два на два. Четыре графика должны иметь одинаковую ось Y и X. Я хотел бы, чтобы ось y и x также пометили внешнюю ось. Мои проблемы заключались в подавлении меток x и y, которые поставляются с основными plot()
в R. Я использую yaxt="n"
а также xaxt="n"
но это не тренировка.
x <- c(1, 4, 5, 5) #fake data
y <- c(2, 4, 5, 4) #fake data
data <- data.frame(x, y) #fake data
plot_data1 <- function(data, ymax) {
par(pty = "s") # make the plot a square
plot(data, type = "l", lwd = 2, xaxt = "n", yaxt = "n", xaxs = "i", yaxs = "i", ylim = c(0, ymax))
my_at <- c(0, 10, 20, 30, 40, 50, 60, 70, 80, 90)
axis(side = 1, at = my_at, outer = TRUE)
axis(side = 2, outer = TRUE)
}
plot_data2 <- function(data, ymax) {
par(pty = "s")
plot(data, type = "l", lwd = 2, xaxt = "n", yaxt = "n", xaxs = "i", yaxs = "i", ylim = c(0, ymax))
my_at <- c(0, 10, 20, 30, 40, 50, 60, 70, 80, 90)
# axis(side=1, at= my_at, outer=TRUE) axis(side=2, outer=TRUE)
}
plot_data3 <- function(data, ymax) {
par(pty = "s")
plot(data, type = "l", lwd = 2, xaxt = "n", yaxt = "n", xaxs = "i", yaxs = "i", ylim = c(0, ymax))
my_at <- c(0, 10, 20, 30, 40, 50, 60, 70, 80, 90)
axis(side = 1, at = my_at, outer = TRUE)
axis(side = 2, outer = TRUE)
}
plot_data4 <- function(data, ymax) {
par(pty = "s")
plot(data, type = "l", lwd = 2, xaxt = "n", yaxt = "n", xaxs = "i", yaxs = "i", ylim = c(0, ymax))
my_at <- c(0, 10, 20, 30, 40, 50, 60, 70, 80, 90)
axis(side = 1, at = my_at, outer = TRUE)
# axis(side=2, outer=TRUE)
}
twobytwo <- function(data, ymax) {
nf <- layout(matrix(c(1, 2, 3, 4), 2, 2, byrow = TRUE), respect = TRUE) # for the two by two layout
layout.show(nf) # the two by two layout we want
nf
plot_data1(data, ymax)
plot_data2(data, ymax)
plot_data3(data, ymax)
plot_data4(data, ymax)
title(xlab = "Age (years)", ylab = "Probability Density", outer = TRUE, line = 3)
}
twobytwo(data, ymax = 9)
Графики отображаются с метками x и y, хотя я подавил их с помощью `yaxt="n". Что нужно настроить, чтобы получить четыре аккуратных графика на графике два на два с указанием оси x и оси y?