que me gustaría reproducir la siguiente figura en MATLAB:elipse alrededor de los datos en MATLAB
Hay dos clases de puntos con coordenadas X e Y. Me gustaría rodear cada clase con una elipse con un parámetro de desviación estándar, que determina qué tan lejos irá la elipse a lo largo del eje.
La figura se creó con otro software y no entiendo exactamente cómo se calcula la elipse.
Aquí están los datos que estoy usando para esta figura. La primera columna es class, 2nd - X, 3rd - Y. Puedo usar gscatter
para dibujar los puntos.
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))
FYI, here es la pregunta SO sobre cómo dibujar una elipse. Entonces, solo necesitamos saber todos los parámetros para dibujarlo.
Actualización:
Estoy de acuerdo que el centro se puede calcular como el medio de las coordenadas X e Y. Probablemente tengo que usar el análisis del componente principal (PRINCOMP
) para cada clase para determinar el ángulo y la forma. Aún pensando ...
Incluso si usted no sabe cómo se calcula la elipse en la figura original, que probablemente podría explicar un poco más todo lo que se supone que significa? No solo rodea los puntos como los puntos grises, por ejemplo, no todos los puntos están incluidos en la elipse. Si no sabe nada, sugeriría el baricentro de los puntos como el centro de la elipse como punto de partida. El segundo momento del área podría darle la dirección del eje principal. – groovingandi
@groovingandi: Básicamente significa que, si la elipse se dibuja con la desviación estándar 3, con distribución normal, incluirá aproximadamente el 99% de los puntos de datos. Las elipses en la figura se generaron con STD = 2. – yuk