1 | function [coeffs, r2] = generalscatterplot(data1, data2, nomvar1, nomvar2, infocompl) |
---|
2 | |
---|
3 | %GENERALSCATTERPLOT est une fonction qui trace le diagramme de dispersion |
---|
4 | %entre 2 variables et en sort les coefficient de regression lineaire ainsi |
---|
5 | %que le coefficient de correlation. |
---|
6 | |
---|
7 | % |
---|
8 | %+ |
---|
9 | % |
---|
10 | % ===================== |
---|
11 | % generalscatterplot.m |
---|
12 | % ===================== |
---|
13 | % |
---|
14 | % .. function:: generalscatterplot(data1, data2, nomvar1, nomvar2, infocompl) |
---|
15 | % |
---|
16 | % DESCRIPTION |
---|
17 | % =========== |
---|
18 | % |
---|
19 | % - Donnees d'entrees : |
---|
20 | % |
---|
21 | % * data1 : Matrice de donnees de la premiere variable, qui sera |
---|
22 | % represente sur l'axe des ordonnees du diagramme. |
---|
23 | % * data1 : Matrice de donnees de la seconde variable, qui sera |
---|
24 | % represente sur l'axe des abscisses du diagramme. |
---|
25 | % * nomvar1 (caracteres) : Nom et unite de la premiere variable (pour le |
---|
26 | % titre et axe). |
---|
27 | % * nomvar2 (caracteres) : Nom et unite de la seconde variable (pour le |
---|
28 | % titre et axe). |
---|
29 | % * infocompl (caracteres, facultatif) : Informations complementaires a |
---|
30 | % mettre dans le titre (ex : 'sur une periode de 2 jours'). |
---|
31 | % |
---|
32 | % - Donnees de sorties : |
---|
33 | % |
---|
34 | % * coeffs : Vecteur de dimension 1*2 comportant les coefficients a et b |
---|
35 | % de la regression lineaire y = ax + b. |
---|
36 | % * r2 : Coefficient de correlation. |
---|
37 | % |
---|
38 | % EXAMPLES |
---|
39 | % ======== |
---|
40 | % |
---|
41 | % Voir la 'demo'. |
---|
42 | % |
---|
43 | % SEE ALSO |
---|
44 | % ======== |
---|
45 | % |
---|
46 | % :func:`MSGanalysiscrossvalidation` |
---|
47 | % |
---|
48 | % TODO |
---|
49 | % ==== |
---|
50 | % |
---|
51 | % matlab 7.4 cratos : No allowed line types found. Nothing done. |
---|
52 | % octave 3.4 cratos : lsline undefined |
---|
53 | % |
---|
54 | % describe demo |
---|
55 | % |
---|
56 | % in demo replace random to make comparison between matlab/octave and machine easier |
---|
57 | % |
---|
58 | % |
---|
59 | % demo with real data cf MSGanalysiscrossvalidation.m |
---|
60 | % |
---|
61 | % EVOLUTIONS |
---|
62 | % ========== |
---|
63 | % |
---|
64 | % $Id$ |
---|
65 | % |
---|
66 | % $URL$ |
---|
67 | % |
---|
68 | % - jaclod 2011-07-29 |
---|
69 | % |
---|
70 | % * Revision de la documentation et des commentaires. |
---|
71 | % * Changement de nom, 'scatterplot' deja existant. |
---|
72 | % |
---|
73 | % - jaclod 2011-07-25 |
---|
74 | % |
---|
75 | % * Creation. |
---|
76 | % |
---|
77 | %- |
---|
78 | |
---|
79 | % On passe les donnees sous forme de vecteur. |
---|
80 | data1 = reshape(data1,1,[]); |
---|
81 | data2 = reshape(data2,1,[]); |
---|
82 | |
---|
83 | % On trace le diagramme. |
---|
84 | scatter(data2,data1,5,'filled'); |
---|
85 | |
---|
86 | % Ajout d'une droite de regression lineaire selon la methode des moindres |
---|
87 | % carrees. |
---|
88 | linereg = lsline; |
---|
89 | set(linereg,'color','r','linewidth',2); |
---|
90 | |
---|
91 | % Recuperation des coefficient de cette droite et du coefficient de |
---|
92 | % correlation. |
---|
93 | coeffs = polyfit(data2,data1,1); |
---|
94 | r2 = corr2(data1, data2); |
---|
95 | |
---|
96 | % Ajout des noms des axes. |
---|
97 | xlabel(nomvar2); |
---|
98 | ylabel(nomvar1); |
---|
99 | |
---|
100 | % Ajout de titres selon le nombre d'arguments d'entrees. |
---|
101 | if nargin == 5; |
---|
102 | title(['Diagramme de dispersion entre les ' nomvar1 ' et les ' nomvar2 ' ' infocompl]); |
---|
103 | else |
---|
104 | title(['Diagramme de dispersion entre les ' nomvar1 ' et les ' nomvar2]); |
---|
105 | end |
---|
106 | |
---|
107 | end |
---|
108 | |
---|
109 | %!demo |
---|
110 | %! close all |
---|
111 | %! clear all |
---|
112 | %! generalscatterplot(linspace(1,100*rand(1),100)+rand(1,100),linspace(1,50,100)+10*rand(1)*rand(1,100),'valeurs semi-aleatoires y', 'valeurs semi-aleatoires x', 'pour la demonstration'); |
---|