Graphiques en Matlab

Le problème exposé dans ce sujet a été résolu.

Bonjour,

Je découvre petit à petit Matlab et je trouve qu’il fait des très beaux graphiques de fonctions et c’est assez simple à faire. Par contre, j’essaye de plotter un graphique à partir d’un tableau Excel et je vois pas comment faire. J’ai importé les données via Home > Import Data que j’ai puis mis dans ce qu’ils appellent un "cell array" (donc un tableau avec deux colonnes). J’aimerais par exemple dire que ma première colonne correspondra à l’axe des $x$ et la seconde à l’axe des $y$. Quelle est la façon la plus optimale et la plus simple pour faire ça ?

Après, je suppose qu’il met simplement les points et qu’on peut d’une manière les relier entre eux ou effectuer une régression (linéaire ou pas) ?

Merci :)

Salut,

Les graphiques Matlab sont plus souvent (pour moi en tout cas) tracés programmatiquement, mais il est tout à fait possible de le faire de manière interactive pour un besoin ponctuel.

C’est assez difficile à expliquer avec des mots, alors je vais appuyer les explications avec quelques captures d’écran.

Commençons par les données. J’ai généré quelques données aléatoires et les ai mises dans un Excel.

Données Excel

Ensuite, tu peux les importer comme tu l’as fait, via Home > Import Data, à quelques détails près:

  • tu sélectionnes juste tes données, pas les en-têtes,
  • tu choisis "column vector" au lieu de "cell array",
  • tu valides avec "import selection"
Import

Une fois que tu as fait ça, les deux vecteurs de données apparaissent dans ton workspace.

Workspace

Tu les sélectionnes et tu vas dans l’onglet "Plots", et tu cliques sur un des types de graphiques.

Figure

L’étape suivante se passe dans la figure. Il y a beaucoup d’options, je ne détaille pas, il faut fouiller.

Customisation
+3 -0

Superbe! C’est exactement ce que je cherchais. Merci!

Par contre, au début tu dis "Les graphiques Matlab sont plus souvent (pour moi en tout cas) tracés programmatiquement". Qu’est-ce que tu entends par programmatiquement ? Je suis novice en Matlab et je l’utilise peut-être pas pour les bonnes choses!

Programmatiquement signifie que tu peux écrire des scripts Matlab qui tracent des figures. L’intérêt est de pouvoir adapter les figures automatiquement à tes données, ce qui est utile si tu veux tracer la même figure avec différents jeux de données.

La figure que j’ai faite à la main dans mon post précédent peut-être reproduite avec le script ci-dessous. Il suffit de l’exécuter (dans la console ou dans un script), pour obtenir exactement la même figure que celle du poste précédent (à l’ordre de la légende et aux dimensions près, parce que je suis paresseux).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
donnees = xlsread('donnees.xlsx');
x = donnees(:,1);
y = donnees(:,2);
interp = interp1(x,y,5:0.1:60, 'spline');

figure;
plot(5:0.1:60, interp, 'LineWidth', 2, 'Color', [0.04 0.52 0.78]);
hold all;
plot(x,y,'.', 'MarkerSize', 18, 'MarkerEdgeColor', [0.85 0.16 0]);
title('Evolution de l''intensité');
ylabel('Intensité (A)');
xlabel('Temps (s)');
legend('Interpolation', 'Mesures', 'Location', 'southwest');
xlim([5 60]);
ylim([-1.5 1]);
set(gca','XTick', [5:5:60]);
set(gca,'YTick',[-1:0.5:1]);
set(gca,'YGrid','on');
+2 -0

Oui, au final, ça revient au même.

L’avantage est en effet de gagner du temps et de la flexibilité. Par exemple, il m’arrive régulièrement d’avoir à tracer plusieurs fois des choses similaires. Faire un script permet de pouvoir s’adapter aux variations dans les données (par exemple ajuster l’axe des ordonnées automatiquement en fonction des données) sans recommencer toutes les opérations à la main.

Tu peux d’ailleurs passer de l’un à l’autre. Quand tu écris un script générant une figure, elle peut être modifiée à la main ; et inversement, quand tu fais tout à la main, Matlab permet de générer un script traçant la même figure.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte