2014-11-26 2 views
0

У меня есть 4 карты, чтобы сюжет и хотел бы построить их в одной области графика, поэтому я использую кодR: Изменение размера 2 х 2 участка выход

par(mfrow=c(2,2), bty="n") 

Однако, результат много бесполезного пустого пространства вокруг моих карт (которые тоже слишком малы).

На изображении ниже показано, сколько места занимает каждая карта (синий прямоугольник) относительно площади участка.

Representation of plot area outputs

Можно ли перейти от текущей ситуации (см 2 х 2 участка посадки) до желаемой ситуации (см Желаемых лучше подходит)?

Я попытался изменить параметры ширины и высоты (dev.new(width=x, height=y)), но не повезло.

+3

Возможно, игра с полями ('par (mar = ..., oma = ...)')? – Cath

+1

См. Следующее: http://stackoverflow.com/questions/13239986/avoid-wasting-space-when-placing-multiple-aligned-plots-onto-one-page –

ответ

3

Я бы предложил использовать функцию layout, хотя использование par тоже прекрасное. Ниже приводится простой пример, в котором вы можете настроить настройки par(mar=c()) для каждого отдельного участка, сближая их. layout позволяет отрегулировать относительную высоту графиков с параметром height, что может быть полезно при попытке получить панельные графики одинаковой высоты, если у вас есть ось x только для участков нижнего уровня.

y=runif(100) 
x=runif(100) 

layout(matrix(c(1,2,3,4), byrow=TRUE, ncol=2,nrow=2)) 
par(mar=c(3,3,0.5,0.5)) 
plot(y,x, xaxt='n') 

par(mar=c(3,3,0.5,0.5)) 
plot(y,x, xaxt='n') 

par(mar=c(3,3,0.5,0.5)) 
plot(y,x) 

par(mar=c(3,3,0.5,0.5)) 
plot(y,x, yaxt='n') 

 Смежные вопросы

  • Нет связанных вопросов^_^