web-dev-qa-db-fra.com

Comment réduire les frontières autour des sous-parcelles dans matlab?

Duplicata possible:
marge de sous-tracé MATLAB

Dans matlab, une quantité démesurée d'espace est gaspillée autour des sous-parcelles. Par exemple, dans cet exemple:

t = 0:0.001:2*pi+0.001;
figure(2);
for i = 1 : 25;
    subplot(5,5,i);
    plot(t, sin(i*t));
    axis off
end

Example of wasted white space in subplots

plus de 50% de l'espace sur la figure est gaspillé comme "vide". Je voudrais réduire cet espace vide, mais je n'ai pas réussi à identifier un mécanisme pour le faire. Pensées?

Merci John

44
John

La fonction subaxis sur l'échange de fichiers vous permet de spécifier des marges pour les sous-tracés.

Exemple d'utilisation:

t = 0:0.001:2*pi+0.001;
figure(2);
for i = 1 : 25;
    subaxis(5,5,i, 'Spacing', 0.03, 'Padding', 0, 'Margin', 0);
    plot(t, sin(i*t));
    axis tight
    axis off
end

enter image description here

48
nibot

Vous pouvez les positionner vous-même (ou par programme) en utilisant

subplot('Position',[left bottom width height]);

Par défaut, les coordonnées sont normalisées. Ainsi, une position de [0,1 0,1 0,5 0,5] commencera à 10% du chemin depuis le coin inférieur gauche et aura une largeur égale à la moitié de la largeur du chiffre et une hauteur égale à la moitié de la hauteur du chiffre.

Voir la réponse acceptée pour une solution intégrée aux marges et au remplissage.

6
Nicolas Renold

Essayez de réduire les valeurs par défaut dans la propriété des axes masqués LooseInsets, comme décrit dans http://UndocumentedMatlab.com/blog/axes-looseinset-property/

Par exemple:

set(gca, 'LooseInset', get(gca,'TightInset'))
5
Yair Altman