code: def heatmap(self, x: str, y: str, options: str = '', title: str = '',
                  label: str = '') -> object:
          
          code = "proc sgplot data=%s.%s %s;" % (self.libref, self.table, self._dsopts())
          if len(options):
              code += "\n\theatmap x=%s y=%s / %s;" % (x, y, options)
          else:
              code += "\n\theatmap x=%s y=%s;" % (x, y)
  
          if len(label) > 0:
              code += " LegendLABEL='" + label + "'"
          code += ";\n"
          if len(title) > 0:
              code += "\ttitle '%s';\n" % title
          code += "run;\ntitle;"
  
          if self.sas.nosub:
              print(code)
              return
  
          ll = self._is_valid()
          if not ll:
              html = self.HTML
              self.HTML = 1
              ll = self.sas._io.submit(code)
              self.HTML = html
          if not self.sas.batch:
              self.sas.DISPLAY(self.sas.HTML(ll['LST']))
          else:
              return ll
docs: Documentation link: http://support.sas.com/documentation/cdl/en/grstatproc/67909/HTML/default/viewer.htm#n0w12m4cn1j5c6n12ak64u1rys4w.htm
  
          :param x: x variable
          :param y: y variable
          :param options: display options (string)
          :param title: graph title
          :param label:
          :return: