class_docstr: Wrapper for python-ternary and matplotlib figure. Parameters for member
  functions simply pass through to ternary's functions with the same names.
  This class manages the matplotlib axes, the scale, and the boundary scale
  to ease the use of ternary plotting functions.
code: def __init__(self, ax=None, scale=None, permutation=None):
      if not scale:
          scale = 1.0
      if ax:
          self.ax = ax
      else:
          _, self.ax = plt.subplots()
      self.set_scale(scale=scale)
      self._permutation = permutation
      self._boundary_scale = scale
      # Container for the axis labels supplied by the user
      self._labels = dict()
      self._corner_labels = dict()
      self._ticks = dict()
      # Container for the redrawing of labels
      self._to_remove = []
      self._connect_callbacks()
      # Background
      self._background_parameters = None
      # Cache for the background triangle object, so it can be removed and redrawn as needed.
      self._background_triangle = None
      self.set_background_color(
          color="whitesmoke", zorder=-1000, alpha=0.75
      )
  
imports: from collections import namedtuple
  from functools import partial
  import numpy
  from matplotlib import pyplot
  from .None import heatmapping
  from .None import lines
  from .None import plotting
  from .helpers import project_point, convert_coordinates_sequence
label_desc: Use image node_id 1 to create a new TernaryAxesSubplot object from inherited base classes: object with example: obj = TernaryAxesSubplot(ax, scale, permutation)