code: def __init__(self, data_id, req):
      self.data_id = data_id
      self.analysis_type = get_str_arg(req, "type")
      curr_settings = global_state.get_settings(data_id) or {}
      self.query = build_query(data_id, curr_settings.get("query"))
      self.data = load_filterable_data(data_id, req, query=self.query)
      self.selected_col = find_selected_column(
          self.data, get_str_arg(req, "col", "values")
      )
      if self.analysis_type != "frequency":
          self.data = self.data[
              ~pd.isnull(self.data[self.selected_col])
          ]
      self.dtype = find_dtype(self.data[self.selected_col])
      self.classifier = classify_type(self.dtype)
      self.code = build_code_export(
          data_id,
          imports="{}\n".format(
              "\n".join(
                  [
                      "import numpy as np",
                      "import pandas as pd",
                      "import plotly.graph_objs as go",
                  ]
              )
          ),
      )
  
      if self.analysis_type is None:
          self.analysis_type = (
              "histogram"
              if self.classifier in ["F", "I", "D"]
              else "value_counts"
          )
  
      if self.analysis_type == "geolocation":
          self.analysis = GeolocationAnalysis(req)
      elif self.analysis_type == "histogram":
          self.analysis = HistogramAnalysis(req)
      elif self.analysis_type == "categories":
          self.analysis = CategoryAnalysis(req)
      elif self.analysis_type == "value_counts":
          self.analysis = ValueCountAnalysis(req)
      elif self.analysis_type == "word_value_counts":
          self.analysis = WordValueCountAnalysis(req)
      elif self.analysis_type == "qq":
          self.analysis = QQAnalysis()
      elif self.analysis_type == "frequency":
          self.analysis = FrequencyAnalysis(req)
  
imports: import numpy
  import pandas
  import plotly.express
  import plotly.graph_objs
  import pprint
  import scipy.stats
  import time
  import dtale.global_state
  import dtale.pandas_util
  from dtale.code_export import build_code_export, build_final_chart_code
  from dtale.column_builders import clean, clean_code
  from dtale.describe import load_describe
  from dtale.query import build_query, load_filterable_data
  from dtale.utils import apply, classify_type, find_dtype, find_dtype_formatter, find_selected_column, get_bool_arg, get_int_arg, get_str_arg, grid_columns, grid_formatter, json_float, json_timestamp, make_list
label_desc: Use image node_id 1 to create a new ColumnAnalysis object from inherited base classes: object with example: obj = ColumnAnalysis(data_id, req)