code: def _plotly_viz_data_heatmap(
      data, colnames: List[str], missing: bool = False, **kwargs
  ):
      """Plots the data heatmap.
  
      Args:
          data: The dataframe
          colnames (List[str]): The column names, used for tick labels
          missing (bool): If True, plots missing values instead
          **kwargs: Keyword arguments.
  
      Returns:
          The data heatmap as a Plotly figure.
      """
      data_fig = go.Heatmap(
          z=np.flip(data.values, axis=0),
          x=list(range(data.shape[0])),
          y=list(colnames[::-1]),
          ygap=1,
          zmin=-3 if not missing else 0,
          zmax=3 if not missing else 1,
          colorscale="viridis" if not missing else "greys",
          colorbar={
              "title": "z-score (bounded)" if not missing else "Missing"
          },
      )
  
      figure = go.Figure(
          data=[data_fig],
          layout=go.Layout(
              autosize=False,
              title={
                  "text": "Data Heatmap",
                  "font": {
                      "size": get_option("display.plotly.title_size")
                  },
              },
              width=get_option("display.plotly.fig_width"),
              height=get_option("display.plotly.fig_height"),
              xaxis=go.layout.XAxis(
                  ticks="", title="Record #", showgrid=False
              ),
              yaxis=go.layout.YAxis(
                  ticks="",
                  title="Variable",
                  automargin=True,
                  showgrid=False,
              ),
              plot_bgcolor="rgb(0,0,0,0)",
              paper_bgcolor="rgb(0,0,0,0)",
          ),
      )
  
      if _in_notebook():
          init_notebook_mode(connected=True)
          return iplot(figure, config={"displayModeBar": False})
      else:
          return figure
  
imports: from typing import List
  import pandas
  import numpy
  from plotly.offline import init_notebook_mode, iplot
  from matplotlib.figure import Figure
  import seaborn
  import plotly.graph_objs
  from sklearn.preprocessing import StandardScaler
  from data_describe._widget import BaseWidget
  from data_describe.config._config import get_option
  from data_describe.compat import _is_dataframe, _requires, _in_notebook
  from data_describe.backends import _get_viz_backend, _get_compute_backend
label_desc: Use image node_id 3 for calling a global function with example usage: _plotly_viz_data_heatmap(data, colnames, missing) and returns: iplot, figure