47 votes

Comment réduire les bordures autour des sous-points en matlab ?

Dans Matlab, une quantité démesurée d'espace est gaspillée autour des sous-plans. 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 de la figure est gaspillé en tant qu'"espace vide". J'aimerais réduire cet espace vide, mais je n'ai pas réussi à identifier un mécanisme pour le faire. Qu'en pensez-vous ?

0 votes

Remarque : à partir de 2019b, Mathworks a résolu ce problème avec la commande tiledlayout.

49voto

nibot Points 5057

Le site subaxis de l'échange de fichiers vous permet de spécifier les marges des sous-points.

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

7voto

Nicolas Renold Points 527

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 vers l'intérieur du coin inférieur gauche, et aura une largeur égale à la moitié de la largeur de la figure, et une hauteur égale à la moitié de la taille de la figure. égale à la moitié de la largeur de la figure, et une hauteur égale à la moitié de la hauteur de la figure. hauteur de la figure.

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

6voto

Yair Altman Points 4091

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

Par exemple :

set(gca, 'LooseInset', get(gca,'TightInset'))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X