Вопрос по r, plot – Достижение нескольких графиков с различной шириной печати в R

4

Я хочу создать несколько графиков в одном окне, в котором ширина панелей каждого графика пропорциональна xlim каждого графика.

На данный момент я использую:

layout(matrix(c(1:8,10,9), 5, 2, byrow = FALSE), widths=2)       
layout.show(10)

В принципе, я хотел быwidth применяется отдельно к каждому графику, а не ко всем графикам в столбце. Каков наилучший способ сделать это?

Можете ли вы исправить свой пример так, чтобы матрица перешла кlayout действительно допустимый ввод? Если наибольшее целое число равно 10, оно также должно содержать 1-9. joran
Да извините исправлено user1202664

Ваш Ответ

1   ответ
4

layout работает только в том случае, если участки могут быть расположены по регулярной сетке, но они не должны иметь одинаковую ширину.

layout(
  matrix(
    c(1,1,2,3,3,2,4,5,5,6,6,6), 
    nc=3, byrow = TRUE
  )
)
layout.show(6)

Если вы хотите что-то действительно нерегулярное, вы можете использоватьpar(fig=...,new=TRUE).

plot.new()
par(mar=c(2,2,1,1))
k <- 4
f <- function() 
  plot(rnorm(20),rnorm(20), xlab="", ylab="", main="", las=1)
for(i in 1:k) {
  par(fig=c(0,i/(k+1), (i-1)/k, i/k), new=TRUE)
  f()
  par(fig=c(i/(k+1),1, (i-1)/k, i/k), new=TRUE)
  f()
}

Похожие вопросы