class_docstr: Linear interpolator on a triangular grid.
  
  Each triangle is represented by a plane so that an interpolated value at
  point (x, y) lies on the plane of the triangle containing (x, y).
  Interpolated values are therefore continuous across the triangulation, but
  their first derivatives are discontinuous at edges between triangles.
  
  Parameters
  ----------
  triangulation : `~matplotlib.tri.Triangulation`
      The triangulation to interpolate over.
  z : (npoints,) array-like
      Array of values, defined at grid points, to interpolate between.
  trifinder : `~matplotlib.tri.TriFinder`, optional
      If this is not specified, the Triangulation's default TriFinder will
      be used by calling `.Triangulation.get_trifinder`.
  
  Methods
  -------
  `__call__` (x, y) : Returns interpolated values at (x, y) points.
  `gradient` (x, y) : Returns interpolated derivatives at (x, y) points.
class_docstr_tok: ["Linear","interpolator","on","a","triangular","grid",".","Each","triangle","is","represented","by","a","plane","so","that","an","interpolated","value","at","point","(","x",",","y",")","lies","on","the","plane","of","the","triangle","containing","(","x",",","y",")",".","Interpolated","values","are","therefore","continuous","across","the","triangulation",",","but","their","first","derivatives","are","discontinuous","at","edges","between","triangles",".","Parameters","--","--","--","--","--","triangulation",":","`","~matplotlib.tri.Triangulation","`","The","triangulation","to","interpolate","over",".","z",":","(","npoints",",",")","array-like","Array","of","values",",","defined","at","grid","points",",","to","interpolate","between",".","trifinder",":","`","~matplotlib.tri.TriFinder","`",",","optional","If","this","is","not","specified",",","the","Triangulation","'s","default","TriFinder","will","be","used","by","calling","`",".Triangulation.get_trifinder","`",".","Methods","--","--","--","-","`","__call__","`","(","x",",","y",")",":","Returns","interpolated","values","at","(","x",",","y",")","points",".","`","gradient","`","(","x",",","y",")",":","Returns","interpolated","derivatives","at","(","x",",","y",")","points","."]
code: def _interpolate_single_key(self, return_key, tri_index, x, y):
      _api.check_in_list(["z", "dzdx", "dzdy"], return_key=return_key)
      if return_key == "z":
          return (
              self._plane_coefficients[tri_index, 0] * x
              + self._plane_coefficients[tri_index, 1] * y
              + self._plane_coefficients[tri_index, 2]
          )
      elif return_key == "dzdx":
          return self._plane_coefficients[tri_index, 0]
      else:  # 'dzdy'
          return self._plane_coefficients[tri_index, 1]
  
imports: import numpy
  from matplotlib import _api
  from matplotlib.tri import Triangulation
  from matplotlib.tri._trifinder import TriFinder
  from matplotlib.tri._tritools import TriAnalyzer
label_desc: Use image node_id 4 for calling the LinearTriInterpolator obj's underlying member method code with example usage: obj._interpolate_single_key(return_key, tri_index, x, y) and returns: unknown, self, self