Les objets de type Axes ne possèdent pas de propriété permettant d'incliner les labels des repères de l'axe des abscisses d'un graphique.
Il existe néanmoins plusieurs contributions disponibles sur le File EXchange qui répondent à ce besoin :
Il existe néanmoins plusieurs contributions disponibles sur le File EXchange qui répondent à ce besoin :
- XTICKLABEL_ROTATE, par Brian Katz
- XTICKLABEL_ROTATE90, par Denis Gilbert
- Rotate XTick Labels for multi-axes, par Peter Platzer
---------------
Comment mettre une étiquette à mes points ?
x=rand(3,1); y=rand(3,1); figure plot(x,y,'r+'); str=num2str([1:numel(x)].','%1d');%ATTENTIONlepremierargumentdeNUM2STRdoitêtreunvecteurcolonnetext(x+0.01,y+0.01,str)%Ledécalagede0.01estarbitraireici. ------------omment tracer une ligne dont la couleur varie ?x = rand(3,1); y = rand(3,1); figure subplot(2,1,1) plot(x,y) subplot(2,1,2) patch('xdata',[x;x(end:-1:1)],...'ydata',[y;y(end:-1:1)],...'facecolor','interp',...'edgecolor','interp',...'facevertexcdata',[y;y(end:-1:1)]) ------------- omment animer le tracé d'une courbe ?%Générationdesdonnéesth=0:0.02:10*pi; y=sin(th);%Créationdel'objetFigurecontenantlestracésfig=figure;%PremièreobjetAxesoùesttracéelacourbedirectesubplot(2,1,1)%Tracédelacourbeplot(th,y,'r-')%Ajustementdeslimitesdel'objetAxesxlim([min(th) max(th)]) ylim([min(y) max(y)])%SecondobjetAxesoùesttracéelacourbeaniméesubplot(2,1,2)%ModificationdelapropriétéDoubleBufferdel'objetFigurepour%éviterleclignotementdelafenêtre%NECESSAIREPOURTOUTEANIMATIONset(fig,'doublebuffer','on')%Tracédupremierpointdelacourbe%etrécupérationdel'identifiant(handle)pdel'objetLinecrée.p=plot(th(1),y(1),'r-');%Ajustementdeslimitesdel'objetAxesxlim([min(th) max(th)]) ylim([min(y) max(y)])%Onbouclesurlenombredepointsàtracer.%Ondémarreà2puisquelepremierestdéjàtracéforn=2:numel(th)%Ajoutdespointsdelacourbeaufuretàmesure%enutilisantlacombinaisonSET+identifiant(handle)set(p,'xdata',th(1:n),'ydata',y(1:n));%Forçagedel'affichagedutracédrawnowend-------------Comment récupérer les valeurs de données tracées ? Dans tous les cas, il faut utiliser la fonction FINDOBJ pour récupérer l'identifiant de l'objet dont on veut récupérer les données. Pour les objets de type Line (nuage de points ou lignes), Surface ou Mesh, on récupère les propriétés XDATA, YDATA et ZDATA Pour les objets de type Image, on récupère la propriété CDATA Pour les objets de type Patch, on récupère, soit les propriétés XDATA, YDATA et ZDATA, soit les propriétés VERTICES et FACES[X,Y,Z] = peaks(20) surf(X,Y,Z); h=findobj('type','surf'); xx=get(h,'xdata') yy=get(h,'ydata') zz=get(h,'zdata') -------------------- Comment redimensionner une image ? La première solution consiste à utiliser la fonction IMRESIZE contenue dans l'Image Processing Toolbox. La deuxième solution utilise l'indexage des matrices. Puisqu'une image est une matrice 2D ou 3D (RGB), il est très simple de diminuer la taille d'une image en jouant sur l'indexage. Par exemple, pour diminuer par deux la taille d'une image 2D, il suffit de ne conserver qu'un pixel sur deuximg=rand(150,200);%Uneimage2Daléatoiresize(img) ans = 150 200 img=img(1:2:end,1:2:end); size(img) ans = 75 100 --------Pour une image 3D (RGB), le code devient :img=rand(150,200,3);%Uneimage3D(RGB)aléatoiresize(img) ans = 150 200 3 img=img(1:2:end,1:2:end,:); size(img) ans = 75 100 3 ----- On remarque que cette solution utilisant l'indexage se limite à des facteurs de réductions/agrandissement entier. La troisième solution utilise les fonctions d'interpolation. Soit INTERP2 pour diminuer par deux la taille d'une image 2D :img = rand(150,200);%Uneimage2Daléatoiresize(img) ans = 150 200 [c,r ] = size(img);%Récupérationdes2dimensionsdel'image[ci,ri] = meshgrid(1:2:r,1:2:c);%Générationdelagrilled'interpolationimg = interp2(img,ci,ri);%Interpolationdesvaleursdespixelssize(img) ans = 75 100 Soit INTERP3 pour diminuer par deux la taille d'une image 3D :img = rand(150,200,3);%Uneimage3D(RGB)aléatoiresize(img) ans = 150 200 3 [c,r,p] = size(img);%Récupérationdes3dimensionsdel'image[ci,ri,pi] = meshgrid(1:2:r,1:2:c,1:p);%Générationdelagrilled'interpolationimg = interp3(img,ci,ri,pi);%InterpolationdesvaleursdespixelsduplanRsize(img) ans = ans = 75 100 3

 

