docstr: Returns
  -------
  str, the html file representation
docstr_tok: ["Returns","--","--","--","-","str",",","the","html","file","representation"]
code: def to_html(self):
      """
      Returns
      -------
      str, the html file representation
  
      """
      javascript_to_insert = "\n".join(
          [
              PackedDataUtils.full_content_of_javascript_files(),
              self.category_scatterplot_structure._visualization_data.to_javascript(
                  "getCategoryDataAndInfo"
              ),
              self.category_scatterplot_structure.get_js_to_call_build_scatterplot_with_a_function(
                  self.category_plot_interface
              ),
              self.term_scatterplot_structure._visualization_data.to_javascript(
                  "getTermDataAndInfo"
              ),
              self.term_scatterplot_structure.get_js_to_call_build_scatterplot_with_a_function(
                  self.term_plot_interface
              ),
              self.term_scatterplot_structure.get_js_reset_function(
                  values_to_set=[
                      self.category_plot_interface,
                      self.term_plot_interface,
                  ],
                  functions_to_reset=[
                      "build" + self.category_plot_interface,
                      "build" + self.term_plot_interface,
                  ],
              ),
              PackedDataUtils.javascript_post_build_viz(
                  "categorySearch", self.category_plot_interface
              ),
              PackedDataUtils.javascript_post_build_viz(
                  "termSearch", self.term_plot_interface
              ),
          ]
      )
      autocomplete_css = (
          PackedDataUtils.full_content_of_default_autocomplete_css()
      )
      html_template = self._get_html_template()
      html_content = (
          html_template.replace(
              "/***AUTOCOMPLETE CSS***/", autocomplete_css, 1
          )
          .replace("<!-- INSERT SCRIPT -->", javascript_to_insert, 1)
          .replace("<!--D3URL-->", self.d3_url_struct.get_d3_url(), 1)
          .replace(
              "<!--D3SCALECHROMATIC-->",
              self.d3_url_struct.get_d3_scale_chromatic_url(),
          )
          # .replace('<!-- INSERT D3 -->', self._get_packaged_file_content('d3.min.js'), 1)
      )
      html_content = html_content.replace(
          "http://", self.protocol + "://"
      )
      if self.show_halo:
          axes_labels = self.category_projection.get_nearest_terms(
              num_terms=self.num_terms
          )
          for position, terms in axes_labels.items():
              html_content = html_content.replace(
                  "{%s}" % position, self._get_lexicon_html(terms)
              )
      (
          cellheight,
          cellheightshort,
      ) = cell_height_and_cell_height_short_from_height(
          self.category_height
      )
      return (
          (
              html_content.replace(
                  "{width}", str(self.category_width)
              ).replace("{height}", str(self.category_height))
          )
          .replace("{cellheight}", str(cellheight))
          .replace("{cellheightshort}", str(cellheightshort))
      )
  
file_path: scattertext/scattertext/viz/PairPlotFromScattertextStructure.py
imports: from scattertext.Common import PAIR_PLOT_HTML_VIZ_FILE_NAME, PAIR_PLOT_WITHOUT_HALO_HTML_VIZ_FILE_NAME
  from scattertext.categoryprojector.CategoryProjection import CategoryProjection, CategoryProjectionBase
  from scattertext.viz.BasicHTMLFromScatterplotStructure import D3URLs, ExternalJSUtilts, PackedDataUtils, cell_height_and_cell_height_short_from_height
  from scattertext.viz.HTMLSemioticSquareViz import ClickableTerms
label_desc: Use image node_id 2 for calling the PairPlotFromScatterplotStructure obj's underlying member method code with example usage: obj.to_html() and returns: html_content