class_docstr: Create a color plot showing the best grid search scores across two
  parameters.
  
  Parameters
  ----------
  estimator : Scikit-Learn grid search object
      Should be an instance of GridSearchCV. If not, an exception is raised.
  
  x_param : string
      The name of the parameter to be visualized on the horizontal axis.
  
  y_param : string
      The name of the parameter to be visualized on the vertical axis.
  
  metric : string (default 'mean_test_score')
      The field from the grid search's `cv_results` that we want to display.
  
  ax : matplotlib Axes, default: None
      The axes to plot the figure on. If None is passed in the current axes
      will be used (or generated if required).
  
  colormap : string or cmap, default: 'RdBu_r'
      optional string or matplotlib cmap to colorize lines
      Use either color to colorize the lines on a per class basis or
      colormap to color them on a continuous scale.
  
  kwargs : dict
      Keyword arguments that are passed to the base class and may influence
      the visualization as defined in other Visualizers.
  
  Examples
  --------
  >>> from yellowbrick.gridsearch import GridSearchColorPlot
  >>> from sklearn.model_selection import GridSearchCV
  >>> from sklearn.svm import SVC
  >>> gridsearch = GridSearchCV(SVC(),
                                {'kernel': ['rbf', 'linear'], 'C': [1, 10]})
  >>> model = GridSearchColorPlot(gridsearch, x_param='kernel', y_param='C')
  >>> model.fit(X)
  >>> model.show()
code: def draw(self):
      # Project the grid search results to 2 dimensions
      x_vals, y_vals, best_scores = self.param_projection(
          self.x_param, self.y_param, metric=self.metric
      )
  
      # Mask nans so that they can be filled with a hatch
      data = np.ma.masked_invalid(best_scores)
  
      # Plot and fill in hatch for nans
      mesh = self.ax.pcolor(
          data,
          cmap=self.colormap,
          vmin=np.nanmin(data),
          vmax=np.nanmax(data),
      )
      self.ax.patch.set(hatch="x", edgecolor="black")
  
      # Ticks and tick labels
      self.ax.set_xticks(np.arange(len(x_vals)) + 0.5)
      self.ax.set_yticks(np.arange(len(y_vals)) + 0.5)
      self.ax.set_xticklabels(x_vals, rotation=45)
      self.ax.set_yticklabels(y_vals, rotation=45)
  
      # Add the colorbar
      cb = self.ax.figure.colorbar(mesh, None, self.ax)
      cb.outline.set_linewidth(0)
  
      self.ax.set_aspect("equal")
  
file_path: yellowbrick/yellowbrick/gridsearch/pcolor.py
imports: import numpy
  from .base import GridSearchVisualizer
label_desc: Use image node_id 2 for calling the GridSearchColorPlot obj's underlying member method code with example usage: obj.draw() without return types