code: def print_plot_large(
      figures_dir,
      eps_lap,
      eps_gnmax1,
      answered_gnmax1,
      eps_gnmax2,
      partition_gnmax2,
      answered_gnmax2,
  ):
      """Plots a graph of LNMax vs GNMax with two parameters.
  
      Args:
        figures_dir: A name of the  directory where to save the plot.
        eps_lap: The cumulative privacy costs of the Laplace mechanism.
        eps_gnmax1: The cumulative privacy costs of the Gaussian mechanism (set 1).
        answered_gnmax1: The cumulative count of queries answered (set 1).
        eps_gnmax2: The cumulative privacy costs of the Gaussian mechanism (set 2).
        partition_gnmax2: Allocation of eps for set 2.
        answered_gnmax2: The cumulative count of queries answered (set 2).
      """
      xlim = 6000
      x_axis = range(0, int(xlim), 10)
      lenx = len(x_axis)
      y_lap = np.zeros(lenx)
      y_gnmax1 = np.full(lenx, np.nan, dtype=float)
      y_gnmax2 = np.full(lenx, np.nan, dtype=float)
      y1_gnmax2 = np.full(lenx, np.nan, dtype=float)
  
      for i in range(lenx):
          x = x_axis[i]
          y_lap[i] = eps_lap[x]
          idx1 = np.searchsorted(answered_gnmax1, x)
          if idx1 < len(eps_gnmax1):
              y_gnmax1[i] = eps_gnmax1[idx1]
          idx2 = np.searchsorted(answered_gnmax2, x)
          if idx2 < len(eps_gnmax2):
              y_gnmax2[i] = eps_gnmax2[idx2]
              fraction_step1, fraction_step2, _ = partition_gnmax2[idx2]
              y1_gnmax2[i] = (
                  eps_gnmax2[idx2]
                  * fraction_step1
                  / (fraction_step1 + fraction_step2)
              )
  
      fig, ax = plt.subplots()
      fig.set_figheight(4.5)
      fig.set_figwidth(4.7)
      ax.plot(
          x_axis,
          y_lap,
          color="r",
          ls="dashed",
          label="LNMax",
          alpha=0.5,
          linewidth=5,
      )
      ax.plot(
          x_axis,
          y_gnmax1,
          color="g",
          ls="-",
          label="Confident-GNMax (moderate)",
          alpha=0.5,
          linewidth=5,
      )
      ax.plot(
          x_axis,
          y_gnmax2,
          color="b",
          ls="-",
          label="Confident-GNMax (aggressive)",
          alpha=0.5,
          linewidth=5,
      )
      ax.fill_between(
          x_axis,
          [0] * lenx,
          y1_gnmax2.tolist(),
          facecolor="b",
          alpha=0.3,
          hatch="\\",
      )
      ax.plot(
          x_axis,
          y1_gnmax2,
          color="b",
          ls="-",
          label="_nolegend_",
          alpha=0.5,
          linewidth=1,
      )
      ax.fill_between(
          x_axis,
          y1_gnmax2.tolist(),
          y_gnmax2.tolist(),
          facecolor="b",
          alpha=0.3,
      )
      plt.xticks(np.arange(0, 7000, 1000))
      plt.xlim([0, xlim])
      plt.ylim([0, 1.0])
      plt.xlabel("Number of queries answered", fontsize=16)
      plt.ylabel(
          r"Privacy cost $\varepsilon$ at $\delta=10^{-8}$", fontsize=16
      )
      plt.legend(loc=2, fontsize=13)  # loc=2 -- upper left
      ax.tick_params(labelsize=14)
      fout_name = os.path.join(
          figures_dir, "lnmax_vs_2xgnmax_large.pdf"
      )
      print("Saving the graph to " + fout_name)
      fig.savefig(fout_name, bbox_inches="tight")
      plt.show()
  
file_path: privacy/research/pate_2018/ICLR2018/rdp_cumulative.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import math
  import os
  import pickle
  import sys
  from absl import app
  from absl import flags
  import matplotlib
  import matplotlib.pyplot
  import numpy
  import core
label_desc: Use image node_id 3 for calling a global function with example usage: print_plot_large(figures_dir, eps_lap, eps_gnmax1, answered_gnmax1, eps_gnmax2, partition_gnmax2, answered_gnmax2) without return types