code: def layout(self):
      return dbc.Card(
          [
              make_hideable(
                  dbc.CardHeader(
                      [
                          html.Div(
                              [
                                  html.H3(
                                      self.title,
                                      id="reg-vs-col-title-"
                                      + self.name,
                                  ),
                                  make_hideable(
                                      html.H6(
                                          self.subtitle,
                                          className="card-subtitle",
                                      ),
                                      hide=self.hide_subtitle,
                                  ),
                                  dbc.Tooltip(
                                      self.description,
                                      target="reg-vs-col-title-"
                                      + self.name,
                                  ),
                              ]
                          ),
                      ]
                  ),
                  hide=self.hide_title,
              ),
              dbc.CardBody(
                  [
                      dbc.Row(
                          [
                              make_hideable(
                                  dbc.Col(
                                      [
                                          dbc.Label(
                                              "Feature:",
                                              id="reg-vs-col-col-label-"
                                              + self.name,
                                          ),
                                          dbc.Tooltip(
                                              "Select the feature to display on the x-axis.",
                                              target="reg-vs-col-col-label-"
                                              + self.name,
                                          ),
                                          dbc.Select(
                                              id="reg-vs-col-col-"
                                              + self.name,
                                              options=[
                                                  {
                                                      "label": col,
                                                      "value": col,
                                                  }
                                                  for col in self.explainer.columns_ranked_by_shap()
                                              ],
                                              value=self.col,
                                          ),
                                      ],
                                      md=4,
                                  ),
                                  hide=self.hide_col,
                              ),
                              make_hideable(
                                  dbc.Col(
                                      [
                                          dbc.Label(
                                              "Display:",
                                              id="reg-vs-col-display-type-label-"
                                              + self.name,
                                          ),
                                          dbc.Tooltip(
                                              f"Select what to display on the y axis: observed {self.explainer.target}, "
                                              f"predicted {self.explainer.target} or residuals. Residuals can either "
                                              "be calculated by takind the difference (y-preds), "
                                              "ratio (y/preds) or log ratio log(y/preds). The latter makes it easier to "
                                              "see relative differences.",
                                              target="reg-vs-col-display-type-label-"
                                              + self.name,
                                          ),
                                          dbc.Select(
                                              id="reg-vs-col-display-type-"
                                              + self.name,
                                              options=[
                                                  {
                                                      "label": "Observed",
                                                      "value": "observed",
                                                  },
                                                  {
                                                      "label": "Predicted",
                                                      "value": "predicted",
                                                  },
                                                  {
                                                      "label": "Residuals: Difference",
                                                      "value": "difference",
                                                  },
                                                  {
                                                      "label": "Residuals: Ratio",
                                                      "value": "ratio",
                                                  },
                                                  {
                                                      "label": "Residuals: Log ratio",
                                                      "value": "log-ratio",
                                                  },
                                              ],
                                              value=self.display,
                                          ),
                                      ],
                                      md=4,
                                  ),
                                  hide=self.hide_ratio,
                              ),
                          ]
                      ),
                      dbc.Row(
                          [
                              dbc.Col(
                                  [
                                      dcc.Graph(
                                          id="reg-vs-col-graph-"
                                          + self.name,
                                          config=dict(
                                              modeBarButtons=[
                                                  ["toImage"]
                                              ],
                                              displaylogo=False,
                                          ),
                                      ),
                                  ]
                              )
                          ]
                      ),
                      dbc.Row(
                          [
                              make_hideable(
                                  dbc.Col(
                                      [self.popout.layout()],
                                      md=2,
                                      align="start",
                                  ),
                                  hide=self.hide_popout,
                              ),
                          ],
                          justify="end",
                      ),
                  ]
              ),
              make_hideable(
                  dbc.CardFooter(
                      [
                          dbc.Row(
                              [
                                  make_hideable(
                                      dbc.Col(
                                          [
                                              dbc.Label(
                                                  "Winsor:",
                                                  id="reg-vs-col-winsor-label-"
                                                  + self.name,
                                              ),
                                              dbc.Tooltip(
                                                  "Excluded the highest and lowest y values from the plot. "
                                                  "When you have some real outliers it can help to remove them"
                                                  " from the plot so it is easier to see the overall pattern.",
                                                  target="reg-vs-col-winsor-label-"
                                                  + self.name,
                                              ),
                                              dbc.Input(
                                                  id="reg-vs-col-winsor-"
                                                  + self.name,
                                                  value=self.winsor,
                                                  type="number",
                                                  min=0,
                                                  max=49,
                                                  step=1,
                                              ),
                                          ],
                                          md=4,
                                      ),
                                      hide=self.hide_winsor,
                                  ),
                                  make_hideable(
                                      dbc.Col(
                                          [
                                              html.Div(
                                                  [
                                                      dbc.Row(
                                                          [
                                                              dbc.Label(
                                                                  "Scatter:"
                                                              ),
                                                              dbc.Tooltip(
                                                                  "For categorical features, display "
                                                                  "a point cloud next to the violin plots.",
                                                                  target="reg-vs-col-show-points-"
                                                                  + self.name,
                                                              ),
                                                              dbc.Checklist(
                                                                  options=[
                                                                      {
                                                                          "label": "Show point cloud",
                                                                          "value": True,
                                                                      }
                                                                  ],
                                                                  value=[
                                                                      True
                                                                  ]
                                                                  if self.points
                                                                  else [],
                                                                  id="reg-vs-col-show-points-"
                                                                  + self.name,
                                                                  inline=True,
                                                                  switch=True,
                                                              ),
                                                          ]
                                                      ),
                                                  ],
                                                  id="reg-vs-col-show-points-div-"
                                                  + self.name,
                                              )
                                          ],
                                          md=2,
                                      ),
                                      self.hide_points,
                                  ),
                                  make_hideable(
                                      dbc.Col(
                                          [
                                              html.Div(
                                                  [
                                                      dbc.Label(
                                                          "Categories:",
                                                          id="reg-vs-col-n-categories-label-"
                                                          + self.name,
                                                      ),
                                                      dbc.Tooltip(
                                                          "Maximum number of categories to display",
                                                          target="reg-vs-col-n-categories-label-"
                                                          + self.name,
                                                      ),
                                                      dbc.Input(
                                                          id="reg-vs-col-n-categories-"
                                                          + self.name,
                                                          value=self.cats_topx,
                                                          type="number",
                                                          min=1,
                                                          max=50,
                                                          step=1,
                                                      ),
                                                  ],
                                                  id="reg-vs-col-n-categories-div-"
                                                  + self.name,
                                              ),
                                          ],
                                          md=2,
                                      ),
                                      self.hide_cats_topx,
                                  ),
                                  make_hideable(
                                      dbc.Col(
                                          [
                                              html.Div(
                                                  [
                                                      html.Label(
                                                          "Sort categories:",
                                                          id="reg-vs-col-categories-sort-label-"
                                                          + self.name,
                                                      ),
                                                      dbc.Tooltip(
                                                          "How to sort the categories: Alphabetically, most common "
                                                          "first (Frequency), or highest mean absolute SHAP value first (Shap impact)",
                                                          target="reg-vs-col-categories-sort-label-"
                                                          + self.name,
                                                      ),
                                                      dbc.Select(
                                                          id="reg-vs-col-categories-sort-"
                                                          + self.name,
                                                          options=[
                                                              {
                                                                  "label": "Alphabetically",
                                                                  "value": "alphabet",
                                                              },
                                                              {
                                                                  "label": "Frequency",
                                                                  "value": "freq",
                                                              },
                                                              {
                                                                  "label": "Shap impact",
                                                                  "value": "shap",
                                                              },
                                                          ],
                                                          value=self.cats_sort,
                                                      ),
                                                  ],
                                                  id="reg-vs-col-categories-sort-div-"
                                                  + self.name,
                                              ),
                                          ],
                                          md=4,
                                      ),
                                      hide=self.hide_cats_sort,
                                  ),
                              ]
                          )
                      ]
                  ),
                  hide=self.hide_footer,
              ),
          ]
      )
  
imports: import numpy
  import pandas
  import dash
  from dash import html, dcc, Input, Output, State
  from dash.exceptions import PreventUpdate
  import dash_bootstrap_components
  from ..dashboard_methods import *
  from ..None import to_html
label_desc: Use image node_id 2 for calling the RegressionVsColComponent obj's underlying member method code with example usage: obj.layout() and returns: dbc