docstr: create a twin of Axes for generating a plot with a sharex
  x-axis but independent y axis.  The y-axis of self will have
  ticks on left and the returned axes will have ticks on the
  right
code: def twin(self, aux_trans=None, axes_class=None):
      """
      create a twin of Axes for generating a plot with a sharex
      x-axis but independent y axis.  The y-axis of self will have
      ticks on left and the returned axes will have ticks on the
      right
      """
  
      if axes_class is None:
          axes_class = self._get_base_axes()
  
      parasite_axes_auxtrans_class = (
          parasite_axes_auxtrans_class_factory(axes_class)
      )
  
      if aux_trans is None:
          ax2 = parasite_axes_auxtrans_class(
              self,
              mtransforms.IdentityTransform(),
              viewlim_mode="equal",
          )
      else:
          ax2 = parasite_axes_auxtrans_class(
              self,
              aux_trans,
              viewlim_mode="transform",
          )
      self.parasites.append(ax2)
      ax2._remove_method = lambda h: self.parasites.remove(h)
  
      self.axis["top", "right"].set_visible(False)
  
      ax2.axis["top", "right"].set_visible(True)
      ax2.axis["left", "bottom"].set_visible(False)
  
      def _remove_method(h):
          self.parasites.remove(h)
          self.axis["top", "right"].set_visible(True)
          self.axis["top", "right"].toggle(
              ticklabels=False, label=False
          )
  
      ax2._remove_method = _remove_method
  
      return ax2
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import six
  from matplotlib import artist, collections, transforms, rcParams
  from matplotlib.axes import subplot_class_factory
  from matplotlib.transforms import Bbox
  from .mpl_axes import Axes
  import numpy
label_desc: Use image node_id 8 for calling the HostAxesBase obj's underlying member method code with example usage: obj.twin(aux_trans, axes_class) and returns: ax2