code: def plot_human(dataset, model, metric, cmap=benchmark_color_map):
      experiments = run_experiments(
          dataset=dataset, model=model, metric=metric
      )
      pl.figure()
      method_arr = []
      for name, (fcounts, scores) in experiments:
          _, _, method, _ = name
          diff_sum = np.sum(np.abs(scores[1] - scores[0]))
          method_arr.append((diff_sum, method, scores[0], scores[1]))
  
      inds = np.arange(3)  # the x locations for the groups
      inc_width = (1.0 / len(method_arr)) * 0.8
      width = inc_width * 0.9
      pl.bar(
          inds,
          method_arr[0][2],
          width,
          label="Human Consensus",
          color="black",
          edgecolor="white",
      )
      i = 1
      line_style_to_hatch = {"dashed": "///", "dotted": "..."}
      for diff_sum, method, _, methods_attrs in sorted(method_arr):
          method_title = (
              getattr(methods, method).__doc__.split("\n")[0].strip()
          )
          label = f"{diff_sum:.2f} - " + method_title
          pl.bar(
              inds + inc_width * i,
              methods_attrs.flatten(),
              width,
              label=label,
              edgecolor="white",
              color=get_method_color(method),
              hatch=line_style_to_hatch.get(
                  get_method_linestyle(method), None
              ),
          )
          i += 1
      metric_title = (
          getattr(metrics, metric).__doc__.split("\n")[0].strip()
      )
      pl.xlabel("Features in the model")
      pl.ylabel("Feature attribution value")
      model_title = (
          getattr(models, dataset + "__" + model)
          .__doc__.split("\n")[0]
          .strip()
      )
      pl.title(metric_title + " - " + model_title)
      pl.gca().xaxis.set_ticks_position("bottom")
      pl.gca().yaxis.set_ticks_position("left")
      pl.gca().spines["right"].set_visible(False)
      pl.gca().spines["top"].set_visible(False)
      ahandles, alabels = pl.gca().get_legend_handles_labels()
      # pl.legend(ahandles, alabels)
      pl.xticks(
          np.array([0, 1, 2, 3]) - (inc_width + width) / 2,
          ["", "", "", ""],
      )
  
      pl.gca().xaxis.set_minor_locator(
          matplotlib.ticker.FixedLocator([0.4, 1.4, 2.4])
      )
      pl.gca().xaxis.set_minor_formatter(
          matplotlib.ticker.FixedFormatter(
              ["Fever", "Cough", "Headache"]
          )
      )
      pl.gca().tick_params(which="minor", length=0)
  
      pl.axhline(0, color="#aaaaaa", linewidth=0.5)
  
      box = pl.gca().get_position()
      pl.gca().set_position(
          [
              box.x0,
              box.y0 + box.height * 0.3,
              box.width,
              box.height * 0.7,
          ]
      )
  
      # Put a legend below current axis
      pl.gca().legend(
          ahandles,
          alabels,
          loc="upper center",
          bbox_to_anchor=(0.5, -0.15),
          ncol=2,
      )
  
      return pl.gcf()
  
file_path: shap/shap/benchmark/plots.py
imports: import base64
  import io
  import os
  import numpy
  import sklearn
  from matplotlib.colors import LinearSegmentedColormap
  from ..None import __version__
  from ..plots import colors
  from .None import methods, metrics, models
  from .experiments import run_experiments
label_desc: Use image node_id 5 for calling a global function with example usage: plot_human(dataset, model, metric, cmap) and returns: pl