code: def plot_results(ax1, ax2, estimator, X, y, title, plot_title=False):
      ax1.set_title(title)
      ax1.scatter(
          X[:, 0], X[:, 1], s=5, marker="o", color=colors[y], alpha=0.8
      )
      ax1.set_xlim(-2.0, 2.0)
      ax1.set_ylim(-3.0, 3.0)
      ax1.set_xticks(())
      ax1.set_yticks(())
      plot_ellipses(
          ax1,
          estimator.weights_,
          estimator.means_,
          estimator.covariances_,
      )
  
      ax2.get_xaxis().set_tick_params(direction="out")
      ax2.yaxis.grid(True, alpha=0.7)
      for k, w in enumerate(estimator.weights_):
          ax2.bar(
              k,
              w,
              width=0.9,
              color="#56B4E9",
              zorder=3,
              align="center",
              edgecolor="black",
          )
          ax2.text(
              k,
              w + 0.007,
              "%.1f%%" % (w * 100.0),
              horizontalalignment="center",
          )
      ax2.set_xlim(-0.6, 2 * n_components - 0.4)
      ax2.set_ylim(0.0, 1.1)
      ax2.tick_params(
          axis="y",
          which="both",
          left=False,
          right=False,
          labelleft=False,
      )
      ax2.tick_params(axis="x", which="both", top=False)
  
      if plot_title:
          ax1.set_ylabel("Estimated Mixtures")
          ax2.set_ylabel("Weight of each component")
  
imports: import matplotlib
  import matplotlib.gridspec
  import matplotlib.pyplot
  import numpy
  from sklearn.mixture import BayesianGaussianMixture
label_desc: Use image node_id 2 for calling a global function with example usage: plot_results(ax1, ax2, estimator, X, y, title, plot_title) without return types