code: def call_build_visualization_in_javascript(self):
      def js_default_value(x, default="undefined"):
          return default if x is None else str(x)
  
      def js_default_string(x, default_string=None):
          if x is not None:
              return json.dumps(str(x))
          if default_string is None:
              return "undefined"
          return json.dumps(default_string)
  
      def js_default_value_to_null(x):
          return "null" if x is None else str(x)
  
      def json_or_null(x):
          return "null" if x is None else json.dumps(x)
  
      def js_bool(x):
          return "true" if x else "false"
  
      def js_float(x):
          return str(float(x))
  
      def js_int(x):
          return str(int(x))
  
      def js_default_full_data(full_data):
          return (
              full_data if full_data is not None else "getDataAndInfo()"
          )
  
      def json_with_jsvalue_or_null(x):
          if x is None:
              return "null"
          to_ret = "{"
          first = True
          for key, val in sorted(x.items()):
              if not first:
                  to_ret += ", "
              to_ret += '"%s": %s' % (key, val)
              first = False
          to_ret += "}"
          return to_ret
  
      arguments = [
          js_default_value(self._width_in_pixels),
          js_default_value(self._height_in_pixels),
          js_default_value_to_null(self._max_snippets),
          js_default_value_to_null(self._color),
          js_bool(self._sort_by_dist),
          js_bool(self._use_full_doc),
          js_bool(self._grey_zero_scores),
          js_bool(self._asian_mode),
          js_bool(self._use_non_text_features),
          js_bool(self._show_characteristic),
          js_bool(self._word_vec_use_p_vals),
          js_bool(self._save_svg_button),
          js_bool(self._reverse_sort_scores_for_not_category),
          js_float(self._max_p_val),
          js_bool(self._p_value_colors),
          js_default_string(self._x_label),
          js_default_string(self._y_label),
          js_default_full_data(self._full_data),
          js_bool(self._show_top_terms),
          js_bool(self._show_neutral),
          js_default_value_to_null(self._get_tooltip_content),
          js_default_value_to_null(self._x_axis_values),
          js_default_value_to_null(self._y_axis_values),
          js_default_value_to_null(self._color_func),
          js_bool(self._show_axes),
          js_bool(self._show_extra),
          js_bool(self._do_censor_points),
          js_bool(self._center_label_over_points),
          json_or_null(self._x_axis_labels),
          json_or_null(self._y_axis_labels),
          js_default_value(self._topic_model_preview_size),
          json_or_null(self._vertical_lines),
          js_default_value_to_null(self._horizontal_line_y_position),
          js_default_value_to_null(self._vertical_line_x_position),
          js_bool(self._unified_context),
          js_bool(self._show_category_headings),
          js_bool(self._show_cross_axes),
          js_default_string(self._div_name),
          js_default_value_to_null(self._alternative_term_func),
          js_bool(self._include_all_contexts),
          js_bool(self._show_axes_and_cross_hairs),
          js_default_string(
              self._x_axis_values_format, DEFAULT_D3_AXIS_VALUE_FORMAT
          ),
          js_default_string(
              self._y_axis_values_format, DEFAULT_D3_AXIS_VALUE_FORMAT
          ),
          js_bool(self._match_full_line),
          js_int(self._max_overlapping),
          js_bool(self._show_corpus_stats),
          js_bool(self._sort_doc_labels_by_name),
          js_bool(self._always_jump),
          js_bool(self._highlight_selected_category),
          js_bool(self._show_diagonal),
          js_bool(self._use_global_scale),
          js_bool(self._enable_term_category_description),
          js_default_value_to_null(self._get_custom_term_html),
          json_or_null(self._header_names),
          json_with_jsvalue_or_null(self._header_sorting_algos),
          js_bool(self._ignore_categories),
          json_or_null(self._background_labels),
          js_default_string(self._label_priority_column),
          js_default_string(self._text_color_column),
          js_default_string(self._suppress_label_column),
          js_default_string(self._background_color),
          js_default_string(self._censor_point_column),
          js_default_string(self._right_order_column),
          js_default_string(self._subword_encoding),
          js_default_value(self._top_terms_length, "14"),
          js_default_value(self._top_terms_left_buffer, "0"),
          js_default_value_to_null(self._get_column_header_html),
          js_default_string(self._term_word),
          js_bool(self._show_term_etc),
          js_bool(self._sort_contexts_by_meta),
          js_bool(self._suppress_circles),
          js_default_string(self._text_size_column),
          json_or_null(self._category_colors),
          js_bool(self._show_chart),
      ]
      return "buildViz(" + ",\n".join(arguments) + ");\n"
  
file_path: scattertext/scattertext/viz/ScatterplotStructure.py
imports: import json
  from scattertext.Common import DEFAULT_DIV_ID, DEFAULT_D3_AXIS_VALUE_FORMAT
label_desc: Use image node_id 2 for calling the ScatterplotStructure obj's underlying member method code with example usage: obj.call_build_visualization_in_javascript() and returns: unknown, unknown, json, unknown, unknown, unknown, str, str, unknown, to_ret, json, str, str