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

alt text

È stato utile?

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';
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top