code: def gen_overall_plot(exp, model_idx):
      figure = exp.visualize(key=None)
      if figure is None:
          _log.info(
              "No overall plot to display: {0}|{1}".format(
                  model_idx, exp.name
              )
          )
          # Provide default 'no overall' graph
          figure = r"""
                  <style>
                  .center {
                      position: absolute;
                      left: 50%;
                      top: 50%;
                      -webkit-transform: translate(-50%, -50%);
                      transform: translate(-50%, -50%);
                  }
                  </style>
                  <div class='center'><h1>No Overall Graph</h1></div>
              """
  
      # NOTE: We also have support for data frames, but we don't advertise it.
      if isinstance(figure, NDFrame):
          records = figure.to_dict("records")
          columns = [
              {"name": col, "id": col}
              for _, col in enumerate(figure.columns)
              if col != "id"
          ]
          output_graph = html.Div(
              [
                  dt.DataTable(
                      data=records,
                      columns=columns,
                      filter_action="naive",
                      sort_action="naive",
                      editable=False,
                      id="overall-graph-{0}".format(model_idx),
                  )
              ]
          )
      elif isinstance(figure, str):
          output_graph = html.Div(
              [
                  html.Iframe(
                      id="overall-graph-{0}".format(model_idx),
                      sandbox="",
                      srcDoc=figure,
                      style={
                          "border": "0",
                          "width": "100%",
                          "height": "390px",
                      },
                  )
              ]
          )
      elif isinstance(figure, go.Figure):
          output_graph = dcc.Graph(
              id="overall-graph-{0}".format(model_idx),
              figure=figure,
              config={"displayModeBar": "hover"},
          )
      elif isinstance(figure, dash_base.Component):
          output_graph = figure
          output_graph.id = "overall-graph-{0}".format(model_idx)
      else:  # pragma: no cover
          _type = type(figure)
          _log.warning(
              "Visualization type not supported: {0}".format(_type)
          )
          raise Exception(
              "Not supported visualization type: {0}".format(_type)
          )
  
      name = exp.name
      output_div = html.Div(
          [
              html.Div(
                  html.Div(
                      "{0} (Overall)".format(name),
                      className="card-title",
                  ),
                  className="card-header",
              ),
              html.Div(output_graph, className="card-body card-figure"),
          ],
          className="card",
      )
      return output_div
  
file_path: interpret/python/interpret-core/interpret/visual/_udash.py
imports: import dash
  from dash import html
  from dash import dcc
  from dash import dash_table
  import dash_cytoscape
  from dash.dependencies import Input, Output
  import dash.development.base_component
  from pandas.core.generic import NDFrame
  from plotly import graph_objs
  import logging
label_desc: Use image node_id 2 for calling a global function with example usage: gen_overall_plot(exp, model_idx) and returns: output_div