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_ellipse(ax, x, y, angle, width, height, color):
      if (width > 0.0) and (height > 0.0):
          ax.plot(x, y, color=color, marker="x", markersize=6)
          ellipse = patches.Ellipse(
              (x, y),
              width,
              height,
              alpha=0.2,
              angle=-angle,
              linewidth=2,
              fill=True,
              zorder=2,
              color=color,
          )
          ax.add_patch(ellipse)
  
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 5 for calling the ema_visualizer obj's underlying member method code with example usage: obj.__draw_ellipse(ax, x, y, angle, width, height, color) without return types