class_docstr: Create and store a set of contour lines or filled regions.
  
  This class is typically not instantiated directly by the user but by
  `~.Axes.contour` and `~.Axes.contourf`.
  
  %(contour_set_attributes)s
class_docstr_tok: ["Create","and","store","a","set","of","contour","lines","or","filled","regions",".","This","class","is","typically","not","instantiated","directly","by","the","user","but","by","`","~.Axes.contour","`","and","`","~.Axes.contourf","`",".","%","(","contour_set_attributes",")","s"]
docstr: Check that the shapes of the input arrays match; if x and y are 1D,
  convert them to 2D using meshgrid.
docstr_tok: ["Check","that","the","shapes","of","the","input","arrays","match",";","if","x","and","y","are","1D",",","convert","them","to","2D","using","meshgrid","."]
code: def _check_xyz(self, x, y, z, kwargs):
      """
      Check that the shapes of the input arrays match; if x and y are 1D,
      convert them to 2D using meshgrid.
      """
      x, y = self.axes._process_unit_info([("x", x), ("y", y)], kwargs)
  
      x = np.asarray(x, dtype=np.float64)
      y = np.asarray(y, dtype=np.float64)
      z = ma.asarray(z)
  
      if z.ndim != 2:
          raise TypeError(f"Input z must be 2D, not {z.ndim}D")
      if z.shape[0] < 2 or z.shape[1] < 2:
          raise TypeError(
              f"Input z must be at least a (2, 2) shaped array, "
              f"but has shape {z.shape}"
          )
      Ny, Nx = z.shape
  
      if x.ndim != y.ndim:
          raise TypeError(
              f"Number of dimensions of x ({x.ndim}) and y "
              f"({y.ndim}) do not match"
          )
      if x.ndim == 1:
          (nx,) = x.shape
          (ny,) = y.shape
          if nx != Nx:
              raise TypeError(
                  f"Length of x ({nx}) must match number of "
                  f"columns in z ({Nx})"
              )
          if ny != Ny:
              raise TypeError(
                  f"Length of y ({ny}) must match number of "
                  f"rows in z ({Ny})"
              )
          x, y = np.meshgrid(x, y)
      elif x.ndim == 2:
          if x.shape != z.shape:
              raise TypeError(
                  f"Shapes of x {x.shape} and z {z.shape} do not match"
              )
          if y.shape != z.shape:
              raise TypeError(
                  f"Shapes of y {y.shape} and z {z.shape} do not match"
              )
      else:
          raise TypeError(
              f"Inputs x and y must be 1D or 2D, not {x.ndim}D"
          )
  
      return x, y, z
  
imports: from contextlib import ExitStack
  import functools
  import math
  from numbers import Integral
  import numpy
  from numpy import ma
  import matplotlib
  from matplotlib import _api, _docstring
  from matplotlib.backend_bases import MouseButton
  from matplotlib.lines import Line2D
  from matplotlib.path import Path
  from matplotlib.text import Text
  import matplotlib.ticker
  import matplotlib.cm
  import matplotlib.colors
  import matplotlib.collections
  import matplotlib.font_manager
  import matplotlib.cbook
  import matplotlib.patches
  import matplotlib.transforms
label_desc: Use image node_id 3 for calling the QuadContourSet obj's underlying member method code with example usage: obj._check_xyz(x, y, z, kwargs) and returns: x,  y,  z