2016-04-21 9 views
0

Ich versuche subplot mit der quadratischen Achse zu verwenden, aber ich scheiterte, unten Teil meines Codes. Ich habe Fig, die zwei Parzellen hat aber jede andere GrößeSubplot mit Achsenquadrat

for i=1:N 
figure 
subplot (2,1,1); 
plot (r(i,:),p(i,:));         
grid on 
set(gca, 'XTick', 0:0.5:4) 
set(gca, 'YTick', -1:0.15:0.2) 
axis square 
xlim([0 4]); 
ylim([-1 0.2]); 
subplot (2,1,2); 
[r,y]= meshgrid(linspace(0,4),linspace(0,4)); 
U =eval(U1); 
[~,h] = contour(r,y,U,[0.001 0.01 0.05 0.08 0.1 0.2 0.25 0.3 0.4]); 
set(h,'ShowText','on','TextStep',get(h,'LevelStep')*2) 
colormap cool 
grid on 
axis square 
hold on 
xlim([0 4]); 
ylim([0 4]); 
plot (R,Y,'*r');          
hold off 
daspect([1 1 1]); 
end 

Image

Antwort

1

hat Sie axis squarenach die x- und y-Grenzen der Achsen ändern, nachdem alle Plotten erfolgt nennen sollte. Wenn Sie die Xlims und Ylims ändern nach Aufruf axis square MATLAB wird vergessen, dass Sie es quadratisch wollte. Dies liegt daran, dass keine Eigenschaft von axes vorhanden ist, die angibt, dass Sie eine quadratische Matrix wünschen. Sie wird einfach berechnet, wenn Sie axes square basierend auf den aktuellen xlims und ylims und dem Datenseitenverhältnis aufrufen.

subplot (2,1,1); 
plot (r(i,:),p(i,:));         
grid on 
set(gca, 'XTick', 0:0.5:4) 
set(gca, 'YTick', -1:0.15:0.2) 

%// Do not call axis square here 
xlim([0 4]); 
ylim([-1 0.2]); 

%// Call axis square here after you change the x/y limits 
axis square 
+0

Danke, sieht jetzt gut aus – user6052232

Verwandte Themen