Je voudrais reproduire la figure suivante dans Matlab:Ellipse autour des données dans MATLAB®
Il y a deux classes de points avec les coordonnées X et Y. Je voudrais entourer chaque classe d'une ellipse avec un paramètre d'écart type, qui détermine à quelle distance l'ellipse ira le long de l'axe.
La figure a été créée avec un autre logiciel et je ne comprends pas exactement comment elle calcule l'ellipse.
Voici les données que j'utilise pour cette figure. La 1ère colonne est la classe, 2ème - X, 3ème - Y. Je peux utiliser gscatter
pour dessiner les points lui-même.
A = [
0 0.89287 1.54987
0 0.69933 1.81970
0 0.84022 1.28598
0 0.79523 1.16012
0 0.61266 1.12835
0 0.39950 0.37942
0 0.54807 1.66173
0 0.50882 1.43175
0 0.68840 1.58589
0 0.59572 1.29311
1 1.00787 1.09905
1 1.23724 0.98834
1 1.02175 0.67245
1 0.88458 0.36003
1 0.66582 1.22097
1 1.24408 0.59735
1 1.03421 0.88595
1 1.66279 0.84183
];
gscatter(A(:,2),A(:,3),A(:,1))
Pour votre information, here est la question SO sur la façon de dessiner une ellipse. Donc, nous avons juste besoin de connaître tous les paramètres pour le dessiner.
Update:
J'accepte que le centre peut être calculé que les moyens de coordonnées X et Y. Probablement je dois utiliser l'analyse de composant principale (PRINCOMP
) pour chaque classe pour déterminer l'angle et la forme. Toujours en pensant ...
Même si vous ne savez pas comment l'ellipse dans la figure originale est calculée, vous pouvez probablement expliquer un peu plus ce qu'il est censé dire? Ce n'est pas juste entourant les points comme pour les points gris par exemple, tous les points ne sont pas inclus dans l'ellipse. Si vous ne savez rien, je suggérerais comme point de départ le barycentre des points comme le centre de l'ellipse. Le deuxième moment de la zone pourrait vous donner la direction de l'axe principal. – groovingandi
@groovingandi: Fondamentalement, cela signifie que si l'ellipse est dessinée avec l'écart-type 3, avec une distribution normale, elle inclura environ 99% des points de données. Les ellipses sur la figure ont été générées avec STD = 2. – yuk