code: def build_hist(self, s, code):
      code.append(
          "chart = pd.value_counts(s.str.split(expand=True).stack())"
      )
      code.append("chart = chart.to_frame(name='data').sort_index()")
      code.append(
          "chart['percent'] = (chart['data'] / chart['data'].sum()) * 100"
      )
      df = (
          pd.value_counts(s.str.split(expand=True).stack())
          .to_frame(name="data")
          .sort_index()
      )
      df["percent"] = (df["data"] / df["data"].sum()) * 100
      return df
  
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 for calling the WordValueCountAnalysis obj's underlying member method code with example usage: obj.build_hist(s, code) and returns: df