Dibuja elipses alrededor de puntos

Estoy tratando de dibujar puntos suspensivos alrededor de los puntos de un grupo en un gráfico, con matplotlib. Me gustaría obtener algo como esto:

Un conjunto de datos para un grupo (el rojo, por ejemplo) podría verse así:

[[-23.88315146  -3.26328266]  # first point
 [-25.94906669  -1.47440904]  # second point
 [-26.52423229  -4.84947907]]  # third point

Puedo dibujar fácilmente los puntos en un gráfico, pero encuentro problemas para dibujar las elipses.

Las elipses tienen diámetros de2 * standard deviation, y su centro tiene las coordenadas(x_mean, y_mean). El ancho de una elipse es igual ax standard deviation * 2. Su altura es igual a lay standard deviation * 2.

Sin embargo, no sé cómo calcular el ángulo de las elipses (puede ver en la imagen que las elipses no son perfectamente verticales).

¿Tienes una idea sobre cómo hacer eso?

Nota: Esta pregunta es una simplificación del problema LDA (Análisis discriminante lineal). Estoy tratando de simplificar el problema a su expresión más básica.

Respuestas a la pregunta(2)

Su respuesta a la pregunta