class_docstr: Main class producing plots. Each create_*() method reads group data from base_path and creates a plot at the
  save_path. create_all_plots() runs all these functions at once.
class_docstr_tok: ["Main","class","producing","plots",".","Each","create_","*","(",")","method","reads","group","data","from","base_path","and","creates","a","plot","at","the","save_path",".","create_all_plots","(",")","runs","all","these","functions","at","once","."]
docstr: For each metric group, create a scatter plot with Accuracy on the x-axis and that metric group on the y-axis.
  Each point corresponds to a model-scenario pair, colored by the scenario.
docstr_tok: ["For","each","metric","group",",","create","a","scatter","plot","with","Accuracy","on","the","x-axis","and","that","metric","group","on","the","y-axis",".","Each","point","corresponds","to","a","model-scenario","pair",",","colored","by","the","scenario","."]
code: def create_accuracy_v_x_plots(self):
      """
      For each metric group, create a scatter plot with Accuracy on the x-axis and that metric group on the y-axis.
      Each point corresponds to a model-scenario pair, colored by the scenario.
      """
      tables = self.get_group_tables("core_scenarios")
      metric_groups_shown = [
          metric_group
          for metric_group in all_metric_groups
          if metric_group != "Accuracy"
      ]
  
      num_columns = 3
      num_rows = (len(metric_groups_shown) - 1) // num_columns + 1
      fig, axarr = plt.subplots(
          num_rows,
          num_columns,
          figsize=(5 * num_columns, 3.5 * num_rows),
      )
      all_groups = [
          column.group for column in tables["Accuracy"].columns
      ]
      palette = get_color_palette(len(all_groups))
      for i, metric_group in enumerate(metric_groups_shown):
          table: Table = tables[metric_group]
          ax = axarr[i // num_columns][i % num_columns]
          for column in table.columns:
              if (
                  metric_group == "Bias"
                  and column.metric != "Representation (gender)"
              ):  # only show gender bias
                  continue
              accuracy_column: Column = [
                  c
                  for c in tables["Accuracy"].columns
                  if c.group == column.group
              ][0]
              group_idx = all_groups.index(column.group)
              ax.scatter(
                  accuracy_column.values,
                  column.values,
                  color=palette[group_idx],
                  alpha=0.8,
                  label=column.group,
              )
  
          if metric_group in ["Robustness", "Fairness"]:
              ax.plot([0, 1], [0, 1], ls="--", c="gray", zorder=-1)
          if metric_group == "Bias":
              ax.axhline(0.5, ls="--", c="gray", zorder=-1)
  
          ax.set_xlabel("Accuracy", fontsize=14)
          ax.set_ylabel(
              metric_group_to_label[metric_group], fontsize=14
          )
          ax.set_xlim(-0.1, 1.1)
  
      # create dummy lines to display a single legend for all plots
      lines = [
          matplotlib.lines.Line2D(
              [],
              [],
              color="white",
              marker="o",
              markersize=10,
              markerfacecolor=color,
          )
          for color in palette
      ]
      axarr[0][0].legend(
          lines,
          all_groups,
          title="Scenarios",
          loc="lower left",
          bbox_to_anchor=(0, 1),
          ncol=6,
          numpoints=1,
      )
  
      fig.subplots_adjust(wspace=0.25, hspace=0.25)
      self.save_figure(fig, "accuracy_v_x")
  
imports: import argparse
  from collections import defaultdict
  from dataclasses import dataclass
  from datetime import date
  import json
  import os
  from typing import List, Dict, Optional, Any, Callable, Union, Mapping, Tuple, Set
  import colorcet
  import matplotlib
  import matplotlib.pyplot
  import numpy
  from scipy.stats import pearsonr
  import seaborn
  from helm.common.hierarchical_logger import hlog
  from helm.benchmark.presentation.schema import read_schema
  from helm.benchmark.presentation.summarize import AGGREGATE_WIN_RATE_COLUMN
label_desc: Use image node_id 4 for calling the Plotter obj's underlying member method code with example usage: obj.create_accuracy_v_x_plots() without return types