Bonjour,
Je désire tracer deux graphiques sur une même fenêtre, dont la taille de l'un d'entre eux a été modifiée par la commande axis equal.
Voici le code :
A l'origine, je n'avais pas mis la commande axis equal et le graphique ax1 n'était pas beau du tout (cf. première image jointe).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 figure ; ax1 = subplot(2,1,1) ; plot(Xv1,Yv1,':k') ; hold on ; plot(Xh1,Yh1,':k') ; hold on ; plot(Lon_rs,Lat_rs,'.k','MarkerSize',20) ; plot(C(:,1),C(:,2),'k') ; axis equal ; axis([LonN LonX LatN LatX]) ; set(gca,'XTick',Lon1(1:2:size(Lon1,1)),'YTick',Lat1(1:2:size(Lat1,1))) ; ax2 = subplot(2,1,2) ; plot(M(:,1),M(:,2),'*k','MarkerSize',8) ; grid ; xlabel('D (°)','FontSize',10) ; ylabel('R²','FontSize',10) ;
Du coup, je me retrouve avec deux graphiques de taille différente (cf. seconde image jointe).
J'ai fouillé et je me suis inspiré de la fonction 'Position', qui renvoie 4 valeurs [left bottom width height]. Après être passé en mode manuel set(ax2,'PlotBoxAspectRatioMode','manual'), j'ai ajouté la portion de code suivante :
Ce qui donne rend le second graphique carré (cf. troisième image jointe).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 V1 = get(ax1,'Position') ; V2 = get(ax2,'Position') ; set(ax2,'PlotBoxAspectRatioMode','manual') set(ax2,'Position',[V2(1) V2(2) V1(3) V2(4)]) ;
Que faire ? Y a-t-il d'autres options pour modifier le second graphique ? N'y a-t-il pas une solution directement avec l'interface graphique ?
Partager