code: def explanation():
      meta = deepcopy(DEFAULT_META_ALE)
      data = deepcopy(DEFAULT_DATA_ALE)
  
      params = {
          "check_feature_resolution": True,
          "low_resolution_threshold": 10,
          "extrapolate_constant": True,
          "extrapolate_constant_perc": 10.0,
          "extrapolate_constant_min": 0.1,
          "min_bin_points": 4,
      }
  
      meta.update(name="ALE", params=params)
  
      data["ale_values"] = [
          np.array(
              [
                  [0.19286464, -0.19286464],
                  [0.19154015, -0.19154015],
                  [0.10176856, -0.10176856],
                  [-0.27236635, 0.27236635],
                  [-0.61915417, 0.61915417],
              ]
          ),
          np.array(
              [
                  [0.02562475, -0.02562475],
                  [0.01918759, -0.01918759],
                  [0.01825016, -0.01825016],
                  [-0.0422308, 0.0422308],
                  [-0.060851, 0.060851],
              ]
          ),
      ]
      data["constant_value"] = 0.5
      data["ale0"] = [
          np.array([-0.19286464, 0.19286464]),
          np.array([-0.02562475, 0.02562475]),
      ]
      data["feature_values"] = [
          np.array(
              [
                  -1.1492519,
                  -1.13838482,
                  -0.4544552,
                  1.00972385,
                  2.66536596,
              ]
          ),
          np.array(
              [
                  -1.16729904,
                  -0.96888455,
                  -0.94992442,
                  0.72328773,
                  0.98771278,
              ]
          ),
      ]
      data["feature_names"] = np.array(["f_0", "f_1"], dtype="<U3")
      data["target_names"] = np.array(["c_0", "c_1"], dtype="<U3")
      data["feature_deciles"] = [
          np.array(
              [
                  -1.1492519,
                  -1.14490507,
                  -1.14055824,
                  -1.00159889,
                  -0.72802705,
                  -0.4544552,
                  0.13121642,
                  0.71688804,
                  1.34085227,
                  2.00310912,
                  2.66536596,
              ]
          ),
          np.array(
              [
                  -1.16729904,
                  -1.08793324,
                  -1.00856744,
                  -0.96509252,
                  -0.95750847,
                  -0.94992442,
                  -0.28063956,
                  0.3886453,
                  0.77617274,
                  0.88194276,
                  0.98771278,
              ]
          ),
      ]
      return Explanation(meta=meta, data=data)
  
imports: import re
  from copy import deepcopy
  import matplotlib.pyplot
  import numpy
  import pytest
  from numpy.testing import assert_allclose
  from pytest_lazyfixture import lazy_fixture
  from alibi.api.defaults import DEFAULT_DATA_ALE, DEFAULT_META_ALE
  from alibi.api.interfaces import Explanation
  from alibi.explainers.ale import _plot_one_ale_num, adaptive_grid, ale_num, get_quantiles, minimum_satisfied, plot_ale
label_desc: Use image node_id 9 for calling a global function with example usage: explanation() and returns: Explanation