margine di subplot MATLAB
Domanda
Sono tramando 5 x 3 trame usando il comando subplot, ma ci sono enormi margini attorno ogni sottotrama.
Come faccio a controllare la dimensione del margine che li circonda?
figure;
for c=1:15
subplot(5,3,c);
imagesc(reshape(image(:,c), 360,480));
colormap gray;
axis image;
end
Soluzione
Il problema è che Matlab assegna la proprietà position
di ciascun asse in modo tale che ci sia spazio attorno ad ogni trama. È possibile regolare sia la proprietà position
, o ottenere subaxis dal file Exchange e consente di impostare le sottotrame il modo in cui ti piace.
Altri suggerimenti
Date un'occhiata presso l'assi LooseInset e OuterPosition le proprietà: http://undocumentedmatlab.com/blog/axes-looseinset-property/
Dal momento che MATLAB R2019b è possibile utilizzare tiledlayout funzione per il controllo della spaziatura delle sottotrame.
Ecco un esempio che illustra come ottenere sottotrame senza spaziatura piastrella:
figure
example_image = imread('cameraman.tif');
t = tiledlayout(5,3);
nexttile
for c= 1:15
imagesc(example_image(:,c))
if c < 15
nexttile
end
end
t.TileSpacing = 'None';