MATLAB offre une suite d'outils puissants pour la visualisation de données, permettant aux utilisateurs de représenter graphiquement des relations complexes à travers une variété de syntaxes de traçage. Une caractéristique particulièrement utile est la capacité de tracer des données imaginaires, que ce soit comme coordonnées y contre un ensemble implicite de coordonnées x, ou comme paires x-y explicites. Cette fonctionnalité est essentielle pour visualiser des phénomènes tels que la réponse en fréquence des systèmes, où la partie imaginaire représente la phase ou la réactance.
Traçage de Coordonnées Imaginaires : Fondamentaux
La fonction plot de MATLAB est le cheval de bataille pour la création de graphiques 2D. Elle peut gérer une multitude de formats d'entrée, y compris des vecteurs et des matrices, pour générer des tracés. Lorsque vous tracez des données imaginaires, vous pouvez les présenter de plusieurs manières :
- Y contre X implicites : Si vous fournissez un seul vecteur
Yà la fonctionplot, MATLAB suppose un ensemble implicite de coordonnées x qui sont des entiers allant de 1 à la longueur deY. Ceci est utile lorsque votre variable y représente une séquence ou une série temporelle où l'index lui-même est significatif. - Paires X-Y explicites : Vous pouvez spécifier explicitement à la fois les coordonnées x et y en fournissant deux vecteurs,
XetY, de même longueur. Le vecteurXdéfinit les positions sur l'axe horizontal, et le vecteurYdéfinit les positions sur l'axe vertical. - Données matricielles : Si vous fournissez une matrice
Y, MATLAB trace chaque colonne deYcomme une ligne distincte sur le même ensemble d'axes. Les coordonnées x sont implicitement générées comme pour un seul vecteur. - Données tabulaires : Une approche plus moderne et souvent plus intuitive consiste à utiliser des tables et des timetables. Vous pouvez passer directement une table
tblà la fonctionplotet spécifier les variables que vous souhaitez utiliser pour les axes x et y en utilisant leurs noms. Si vous tracez à partir d'un timetable, les temps d'horodatage sont automatiquement utilisés pour l'axe des x par défaut, simplifiant ainsi le processus.

Exemple : Création et Traçage de Fonctions Sinusoïdales
Pour illustrer, considérons la création de données et leur traçage.
Créer
xcomme un vecteur de valeurs espacées linéairement entre 0 et 2π :Cela peut être accompli avec la fonctionlinspace. Par exemple,x = linspace(0, 2*pi, 100);crée 100 points entre 0 et 2π. Une alternative est d'utiliser une incrémentation spécifiée :x = 0:pi/100:2*pi;crée des valeurs avec un incrément de π/100 entre elles.Créer
ycomme des valeurs sinusoïdales dex:Une foisxdéfini, vous pouvez calculeryen utilisant la fonctionsinde MATLAB :y = sin(x);.Tracer
xety:La commande de base pour le traçage estplot(x,y).% Créer x comme un vecteur de valeurs espacées linéairement entre 0 et 2π% Utiliser une incrémentation de π/100 entre les valeursx = 0:pi/100:2*pi;% Créer y comme des valeurs sinusoïdales de xy = sin(x);% Tracer x et yplot(x,y)

Traçage de Plusieurs Lignes
MATLAB excelle dans le traçage de plusieurs ensembles de données sur le même graphique. Vous pouvez spécifier des paires x-y multiples dans un seul appel de fonction plot.
Exemple : Tracer le sinus et le cosinus :Définissez un vecteur
xet ensuite calculezy1 = sin(x)ety2 = cos(x). L'appelplot(x,y1,x,y2)tracera les deux fonctions sur le même ensemble d'axes.% Définir x comme 100 valeurs espacées linéairement entre -2π et 2πx = linspace(-2*pi, 2*pi, 100);% Définir y1 et y2 comme les valeurs sinus et cosinus de xy1 = sin(x);y2 = cos(x);% Tracer les deux fonctionsplot(x,y1,x,y2)Exemple : Traçage à partir d'une matrice :Si vous avez une matrice, par exemple celle retournée par la fonction
magic, MATLAB tracera chaque colonne comme une ligne distincte.% Définir Y comme la matrice 4x4 retournée par la fonction magicY = magic(4);% Créer un tracé linéaire 2D de Y% MATLAB trace chaque colonne de la matrice comme une ligne séparéeplot(Y)

Personnalisation des Tracés : Styles de Lignes, Marqueurs et Couleurs
Au-delà du traçage simple, MATLAB offre des options étendues pour personnaliser l'apparence des lignes tracées. Vous pouvez contrôler le style de ligne, les marqueurs et les couleurs.
Spécification de LineSpec
Une méthode courante consiste à utiliser la syntaxe LineSpec. Il s'agit d'une chaîne de caractères (ou un vecteur de caractères) qui peut contenir jusqu'à trois éléments spécifiant le style de ligne, le marqueur et la couleur. L'ordre de ces éléments n'a pas d'importance.
- Styles de ligne :
-(solide, par défaut),--(tirets),:(pointillés),-.(trait-point). - Marqueurs :
o(cercles),+(plus),*(astérisques),.(points),x(croix),s(carrés),d(diamants),^(triangles vers le haut),v(triangles vers le bas),<(triangles vers la gauche),>(triangles vers la droite),p(pentagones),h(hexagones). - Couleurs :
r(rouge),g(vert),b(bleu),c(cyan),m(magenta),y(jaune),k(noir),w(blanc).
Vous pouvez également spécifier des couleurs personnalisées à l'aide de triplets RGB. Par exemple, [0.5 0.5 0.5] représente un gris moyen.
Exemple : Styles de ligne variés :Pour tracer trois courbes sinusoïdales avec un léger déphasage, vous pouvez spécifier différents styles de ligne pour chaque courbe.
% Définir x comme 100 valeurs espacées linéairement entre -2π et 2πx = linspace(-2*pi, 2*pi, 100);% Définir y1, y2, y3 comme des valeurs sinusoïdales avec un déphasagey1 = sin(x);y2 = sin(x - pi/4);y3 = sin(x - pi/2);% Tracer trois courbes sinusoïdales avec un léger déphasage entre chaque ligne% Utiliser le style de ligne par défaut pour la première ligne% Utiliser une ligne bleue en pointillés avec des marqueurs cercle pour la deuxième% Utiliser une ligne verte en pointillés pour la troisièmeplot(x,y1,x,y2,'--o',x,y3,':g')

Utilisation des Paires Nom-Valeur
Pour un contrôle plus granulaire, vous pouvez utiliser des paires nom-valeur après les spécifications de données ou LineSpec. Ces propriétés s'appliquent à toutes les lignes tracées, sauf si elles sont spécifiées individuellement pour des objets Line.
'LineWidth': Spécifie la largeur de la ligne.'Marker': Spécifie le type de marqueur.'MarkerSize': Spécifie la taille des marqueurs.'MarkerFaceColor': Spécifie la couleur de remplissage des marqueurs.'MarkerEdgeColor': Spécifie la couleur des bords des marqueurs.Exemple : Personnalisation avancée :Créer un tracé linéaire et utiliser l'option
LineSpecpour spécifier une ligne verte en pointillés avec des marqueurs carrés. Utiliser des paires nom-valeur pour spécifier la largeur de ligne, la taille du marqueur et les couleurs du marqueur.% Utiliser la fonction linspace pour définir x comme un vecteur de 150 valeurs entre 0 et 10x = linspace(0, 10, 150);y = cos(5*x);% Créer un tracé linéaire 2D de la courbe cosinus% Changer la couleur de la ligne à une nuance de bleu-vert en utilisant une valeur de couleur RVB% Utiliser des marqueurs carrés et spécifier la largeur de ligne et la taille du marqueurplot(x,y,'-gs', 'LineWidth', 1.5, 'MarkerSize', 6, 'MarkerFaceColor', [0.5 0.5 0.5]);ylabel('cos(5x)') % Ajouter un label d'axe ytitle('Courbe Cosinus Personnalisée')

Traçage de Données Temporelles et Tabulaires
MATLAB simplifie le traçage de données structurées, notamment les timetables, qui sont idéaux pour les données horodatées.
Traçage à partir de Timetables
Lorsque vous tracez des données à partir d'un timetable, les temps d'horodatage sont automatiquement utilisés comme coordonnées x par défaut. Vous n'avez donc pas besoin de spécifier explicitement la variable temporelle.
Exemple : Traçage de données météorologiques :Lisez un fichier CSV comme un timetable
tbl. Tracez les temps d'horodatage sur l'axe des x et la variableRainInchesPerMinutesur l'axe des y.% Lire weather.csv comme un timetable tbltbl = readtimetable("weather.csv");% Tracer les temps d'horodatage sur l'axe des x et la variable RainInchesPerMinute sur l'axe des y% Lorsque vous tracez des données à partir d'un timetable, les temps d'horodatage sont tracés sur l'axe des x par défaut% Ainsi, vous n'avez pas besoin de spécifier la variable Timep = plot(tbl, "RainInchesPerMinute");% Pour modifier les aspects de la ligne, définissez les propriétés LineStyle, Color et Marker sur l'objet Line% Par exemple :% p.LineStyle = '--';% p.Color = 'red';% p.Marker = 'o';

Vous pouvez également tracer plusieurs variables d'un timetable sur le même graphique.
Exemple : Traçage de température et de pression :Tracez les temps d'horodatage sur l'axe des x et les variables
TemperatureetPressureHgsur l'axe des y.% Tracer les temps d'horodatage sur l'axe des x et les variables Temperature et PressureHg sur l'axe des y% Lorsque vous tracez des données à partir d'un timetable, les temps d'horodatage sont tracés sur l'axe des x par défaut% Ainsi, vous n'avez pas besoin de spécifier la variable Timeplot(tbl, ["Temperature", "PressureHg"]);addlegend; % Ajouter une légende
Traçage dans des Axes Spécifiques
Pour des mises en page plus complexes, vous pouvez utiliser tiledlayout pour créer une grille d'axes, puis spécifier dans quel axes un tracé doit apparaître.
Exemple : Création d'une mise en page carrelée :Créez une mise en page carrelée de 2 par 1. Créez le tracé supérieur en passant l'objet axes
ax1à la fonctionplot. Ajoutez un titre et un label d'axe y au tracé.% Appeler la fonction tiledlayout pour créer une mise en page carrelée 2x1tiledlayout(2,1);% Appeler la fonction nexttile pour créer un objet axes et le retourner sous le nom ax1ax1 = nexttile;x = linspace(-2*pi, 2*pi, 100);y1 = sin(15*x);plot(ax1, x, y1); % Créer le tracé supérieur en passant ax1 à la fonction plottitle(ax1, 'Tracé Sinus Mathématique'); % Ajouter un titre au tracé supérieurylabel(ax1, 'sin(15x)'); % Ajouter un label d'axe y au tracé supérieur% Créer le tracé inférieurax2 = nexttile;y2 = cos(15*x);plot(ax2, x, y2);title(ax2, 'Tracé Cosinus Mathématique');ylabel(ax2, 'cos(15x)');xlabel(ax2, 'Angle (radians)');

Traçage de Données Complexes
MATLAB gère également le traçage de nombres complexes. Un nombre complexe z = x + yi peut être représenté comme une paire de coordonnées (x, y) sur le plan complexe, où x est la partie réelle (axe horizontal) et y est la partie imaginaire (axe vertical).
Représentation Cartésienne
Vous pouvez tracer la partie imaginaire en fonction de la partie réelle d'un vecteur complexe.
Exemple : Tracer la partie imaginaire par rapport à la partie réelle :
% Créer un vecteur de nombres complexesz = (1:5) + 2i*(1:5);% Tracer la partie imaginaire en fonction de la partie réelleplot(real(z), imag(z));xlabel('Partie Réelle');ylabel('Partie Imaginaire');title('Représentation Cartésienne des Nombres Complexes');

Alternativement, vous pouvez utiliser une syntaxe simplifiée : plot(z, LineSpec). MATLAB tracera automatiquement la partie réelle sur l'axe des x et la partie imaginaire sur l'axe des y.
Exemple : Utilisation de la syntaxe simplifiée :
% Créer un vecteur de nombres complexesz = (1:5) + 2i*(1:5);% Utiliser la syntaxe simplifiée pour tracer la partie réelle vs la partie imaginaireplot(z, '-o'); % Tracer avec des lignes solides et des marqueurs cerclesxlabel('Partie Réelle');ylabel('Partie Imaginaire');title('Représentation Cartésienne Simplifiée');
Racines Complexes de l'Unité
Les racines n-ièmes de l'unité sont des nombres complexes qui satisfont l'équation $z^n = 1$. Elles peuvent être représentées sur le plan complexe.
Exemple : Cinquièmes racines de l'unité :Trouvez les cinquièmes racines de l'unité et tracez-les en coordonnées cartésiennes.
% Trouver les cinquièmes racines de l'unitéz = roots([1 0 0 0 0 -1]); % Correspond à z^5 - 1 = 0% Tracer la partie imaginaire en fonction de la partie réelleplot(real(z), imag(z), 'x'); % Utiliser des marqueurs 'x'xlabel('Partie Réelle');ylabel('Partie Imaginaire');title('Cinquièmes Racines de l''Unité (Cartésien)');grid on; % Activer la grille

Représentation Polaire
Pour les nombres complexes, la représentation polaire est souvent utile. Un nombre complexe $z$ peut s'écrire sous la forme $z = r e^{i\theta} = r(\cos \theta + i \sin \theta)$, où $r$ est la magnitude et $\theta$ est l'angle de phase. La fonction polarplot est utilisée pour cela.
Exemple : Racines de l'unité en coordonnées polaires :Tracez les cinquièmes racines de l'unité en coordonnées polaires en utilisant
polarplot.% Trouver les cinquièmes racines de l'unitéz = roots([1 0 0 0 0 -1]);% Tracer les racines dans les coordonnées polairespolarplot(angle(z), abs(z), 'o'); % Utiliser des marqueurs cerclestitle('Cinquièmes Racines de l''Unité (Polaire)');

Vous pouvez également utiliser polarplot(z, LineSpec) pour tracer directement un vecteur de nombres complexes en coordonnées polaires.
Traçage de Courbes Complexes Paramétriques
Les courbes dans le plan complexe peuvent être définies paramétriquement.
Exemple : Une spirale complexe :Définir une courbe complexe $z = f(t) = t e^{it}$ avec le paramètre $t$ dans l'intervalle $[0, 4\pi]$.
% Créer un vecteur t de 200 points également espacés dans l'intervalle [0, 4π]t = linspace(0, 4*pi, 200);% Définir la courbe complexe paramétriquez = t .* exp(1i*t);% Tracer la courbe complexe dans les coordonnées cartésiennesplot(real(z), imag(z));xlabel('Partie Réelle');ylabel('Partie Imaginaire');title('Spirale d''Archimède Complexe');

Vous pouvez également tracer cette courbe en coordonnées polaires.
% Tracer la courbe complexe dans les coordonnées polairespolarplot(t, abs(z)); % L'angle est t, la magnitude est abs(z)title('Spirale d''Archimède Complexe (Polaire)');Traçage de Données en Utilisant des Objets Line
La fonction plot retourne un tableau d'objets Line. Vous pouvez utiliser ces objets pour modifier les propriétés des lignes après leur création.
Exemple : Modifier les propriétés des lignes :Tracer deux fonctions sinusoïdales et modifier la largeur de la première ligne et ajouter des marqueurs à la seconde.
% Définir x comme 100 valeurs espacées linéairement entre -2π et 2πx = linspace(-2*pi, 2*pi, 100);% Définir y1 et y2 comme des valeurs sinusoïdalesy1 = sin(x);y2 = cos(x);% Tracer y1 et y2, et retourner les objets Line dans pp = plot(x,y1,x,y2);% Modifier la largeur de ligne du premier tracé (p(1))p(1).LineWidth = 2;% Ajouter des marqueurs étoile au deuxième tracé (p(2))p(2).Marker = '*';p(2).LineStyle = '--'; % Assurer que le style de ligne est également visible avec les marqueurs

Traçage de Valeurs Propres de Matrices
Les valeurs propres d'une matrice carrée peuvent être réelles ou complexes (survenant par paires conjuguées). Le traçage de ces valeurs propres peut fournir des informations importantes sur la stabilité et le comportement d'un système.
Exemple : Tracer les valeurs propres d'une matrice aléatoire :Considérez une matrice carrée réelle 20x20 avec des éléments échantillonnés à partir d'une distribution normale standard.
% Créer une matrice aléatoire 20x20A = randn(20);% Calculer les valeurs propreseigenvalues = eig(A);% Tracer la partie imaginaire en fonction de la partie réelle des valeurs propresplot(real(eigenvalues), imag(eigenvalues), 'o');xlabel('Partie Réelle');ylabel('Partie Imaginaire');title('Valeurs Propres d''une Matrice Aléatoire');grid on;

Considérations sur le Type de Données
MATLAB supporte le traçage de divers types de données, y compris les tableaux tall pour de grands ensembles de données et les tableaux GPU pour le calcul accéléré.
Tableaux tall
Lorsque vous travaillez avec des tableaux tall, la fonction plot trace de manière itérative, ajoutant progressivement des données au graphique à mesure qu'elles sont lues. Cela permet une visualisation pendant le processus de calcul, et les fonctionnalités de zoom et de panoramique sont disponibles pendant cette mise à jour.
Tableaux GPU
La fonction plot accepte les tableaux GPU en entrée, mais l'exécution du calcul ne se fait pas sur le GPU.
Gestion des Caractères Spéciaux dans les Noms de Variables
Une amélioration notable dans les versions récentes de MATLAB est la prise en charge des caractères spéciaux (comme les traits de soulignement) dans les noms de variables de table lorsqu'ils sont utilisés avec la fonction plot. Les labels d'axes et de légende refléteront fidèlement ces noms.
Exemple : Traçage avec des noms de variables contenant des traits de soulignement :
% Supposons que 'tbl' est un timetable avec des variables nommées 'Sample_Number' et 'Another_Legend_Label'% p = plot(tbl, ["Sample_Number", "Another_Legend_Label"]);% legend(["Sample_Number", "Another_Legend_Label"]) % Les labels de légende correspondront
En résumé, MATLAB offre une flexibilité et une puissance considérables pour le tracé de données, y compris les composantes imaginaires de nombres complexes, les données structurées à partir de tables et de timetables, et la visualisation de concepts mathématiques comme les valeurs propres. La personnalisation via LineSpec et les paires nom-valeur, ainsi que la gestion des objets Line, permettent de créer des visualisations claires et informatives.
Formation MatLab : #7 Les Graphiques 3D : Les fonctions Waterfall Plot, Ribbon
tags: #partie #imaginaire #matlab #plot
