code: def __draw_axis_rules(x_metric, y_metric, scales):
      """Draws horizontal and vertical rules for the axis."""
  
      # BASE CHART
      base = alt.Chart(pd.DataFrame({"start": 0, "end": 1}, index=[0]))
  
      axis_values = [0, 0.25, 0.5, 0.75, 1]
  
      # SHARED PARAMETERS
      grid_expr = f"(datum.value === {axis_values[0]} || datum.value === {axis_values[-1]}) ? 0 : 1"
      shared_axis_params = dict(
          values=axis_values,
          domain=False,
          labels=False,
          ticks=False,
          grid=True,
          gridColor=Axis.grid_color,
          gridCap="round",
          gridDash=[2, 4],
          gridWidth={"expr": grid_expr},
      )
  
      # AXIS ENCODING
      bottom_axis = alt.Axis(
          **shared_axis_params,
          orient="bottom",
          title=x_metric.upper(),
          titleBaseline="bottom",
          titlePadding=-Scatter_Axis.title_font_size
          + Scatter_Axis.title_padding,
      )
      left_axis = alt.Axis(
          **shared_axis_params,
          orient="left",
          title=y_metric.upper(),
          titleAlign="left",
          titlePadding=Scatter_Axis.title_font_size / 2
          + Scatter_Axis.title_padding,
      )
  
      # X AXIS
      x_rule = base.mark_rule(
          strokeWidth=1, stroke=Rule.stroke, tooltip=None
      ).encode(
          x=alt.X("start:Q", scale=scales["x"], axis=bottom_axis),
          x2="end:Q",
          y=alt.Y("start:Q", scale=scales["y"], axis=no_axis()),
      )
  
      # Y AXIS
      y_rule = base.mark_rule(
          strokeWidth=1, stroke=Rule.stroke, tooltip=None
      ).encode(
          x=alt.X("start:Q", scale=scales["x"], axis=no_axis()),
          y=alt.Y("start:Q", scale=scales["y"], axis=left_axis),
          y2="end:Q",
      )
  
      return x_rule + y_rule
  
file_path: aequitas/src/aequitas/plot/xy_metrics_chart.py
imports: import altair
  import pandas
  from aequitas.plot.commons.helpers import no_axis, get_chart_metadata
  from aequitas.plot.commons.legend import draw_legend
  from aequitas.plot.commons.scales import get_chart_size_range
  from aequitas.plot.commons.tooltips import get_tooltip_text_group_size
  from aequitas.plot.commons.style.classes import Threshold_Band, Threshold_Rule, Rule, Bubble, Scatter_Axis, Chart_Title, Axis
  from aequitas.plot.commons.style.text import FONT
  from aequitas.plot.commons.style.sizes import XY_Chart
  from aequitas.plot.commons import initializers
  from aequitas.plot.commons import validators
  from aequitas.plot.commons import labels
label_desc: Use image node_id 4 for calling a global function with example usage: __draw_axis_rules(x_metric, y_metric, scales) and returns: unknown