2017-07-10 2 views
1

Je cherche un moyen de mettre quatre régions dans parcelle mienne, qui aura la logique de la matrice ci-dessous:R, parcelles mise en page avec des proportions

> matrix(data=c(1,3,2,4),nrow=2,byrow=TRUE) 
    [,1] [,2] 
[1,] 1 3 
[2,] 2 4 

cellule 1: va être la plus grande figure . L'intrigue réelle contient des informations partout, donc une légende ajouté obstrue plus cellule 2: sera qui ne contient que la légende de la figure 1 cellule 3: Figure 2 cellules 4 : Figure 3

Idéalement je voudrais la cellule 1 à prendre en hauteur 70% donnant seulement 30% pour la légende tandis que les trois et quatre partagent la même hauteur disponible.

Jusqu'à présent, j'ai trouvé la fonction de mise en page et j'ai créé un code reproductible

layout(matrix(data=c(1,3,2,4),nrow=2,byrow=TRUE)) 
# Figure 1 
plot(runif(1000)) 
#Figure 2 actually is only the legend that does not fit below Figure 1, for my case 
plot.new() 
legend("bottom",legend="THis is a very big string that will not fit with the Figure above so it has to be below the Figure") 
# Figure 3 
plot(runif(1000)) 
# Figure 4 
plot(runif(1000)) 

Ce code crée une figure avec les quatre régions où malheureusement je ne peux pas définir les proportions que j'ai besoin. Même si je peux définir des largeurs et des hauteurs avec la commande de mise en page, celles-ci sont en vigueur pour toute la ligne et non individuellement, comme j'en ai besoin.

Existe-t-il des recommandations sur comment je peux améliorer ce code?

Je voudrais vous remercier d'avance pour votre réponse Cordialement Alex

Répondre

2

Votre matrice est pas bien définie. Pour les proportions que vous voulez, quelque chose comme cela fonctionnera (vous pouvez jouer plus pour obtenir vos proportions exactes):

layout(matrix(c(1,1,3,3,1,1,3,3,1,1,4,4,2,2,4,4), nrow = 4, ncol = 4, byrow = TRUE)) 
# Figure 1 
plot(runif(1000)) 
#Figure 2 actually is only the legend that does not fit below Figure 1, for my case 
plot.new() 
legend("bottom",legend="THis is a very big string that will not fit with the Figure above so it has to be below the Figure") 
# Figure 3 
plot(runif(1000)) 
# Figure 4 
plot(runif(1000)) 

enter image description here

+0

grand merci !!!. –