class_docstr: !
  @brief Visualizer of EM algorithm's results.
  @details Provides services for visualization of particular features of the algorithm, for example,
            in case of two-dimensional dataset it shows covariance ellipses.
code: def __draw_ellipses(figure, visualizer, clusters, covariances, means):
      ax = figure.get_axes()[0]
  
      for index in range(len(clusters)):
          angle, width, height = calculate_ellipse_description(
              covariances[index]
          )
          color = visualizer.get_cluster_color(index, 0)
  
          ema_visualizer.__draw_ellipse(
              ax,
              means[index][0],
              means[index][1],
              angle,
              width,
              height,
              color,
          )
  
imports: import numpy
  import random
  from pyclustering.cluster import cluster_visualizer
  from pyclustering.cluster.center_initializer import kmeans_plusplus_initializer
  from pyclustering.cluster.kmeans import kmeans
  from pyclustering.utils import pi, calculate_ellipse_description, euclidean_distance_square
  from enum import IntEnum
  import matplotlib.pyplot
  import matplotlib.animation
  from matplotlib import patches
label_desc: Use image node_id 4 for calling the ema_visualizer obj's underlying member method code with example usage: obj.__draw_ellipses(figure, visualizer, clusters, covariances, means) without return types