code: def plot_gaussian_pdf(
      mean=0.0,
      variance=1.0,
      std=None,
      ax=None,
      mean_line=False,
      xlim=None,
      ylim=None,
      xlabel=None,
      ylabel=None,
      label=None,
  ):
      """
      Plots a normal distribution PDF with the given mean and variance.
      x-axis contains the mean, the y-axis shows the probability density.
  
      Parameters
      ----------
  
      mean : scalar, default 0.
          mean for the normal distribution.
  
      variance : scalar, default 1., optional
          variance for the normal distribution.
  
      std: scalar, default=None, optional
          standard deviation of the normal distribution. Use instead of
          `variance` if desired
  
      ax : matplotlib axes object, optional
          If provided, the axes to draw on, otherwise plt.gca() is used.
  
      mean_line : boolean
          draws a line at x=mean
  
      xlim, ylim: (float,float), optional
          specify the limits for the x or y axis as tuple (low,high).
          If not specified, limits will be automatically chosen to be 'nice'
  
      xlabel : str,optional
          label for the x-axis
  
      ylabel : str, optional
          label for the y-axis
  
      label : str, optional
          label for the legend
  
      Returns
      -------
          axis of plot
      """
  
      import matplotlib.pyplot as plt
  
      if ax is None:
          ax = plt.gca()
  
      if variance is not None and std is not None:
          raise ValueError("Specify only one of variance and std")
  
      if variance is None and std is None:
          raise ValueError("Specify variance or std")
  
      if variance is not None:
          std = math.sqrt(variance)
  
      n = norm(mean, std)
  
      if xlim is None:
          xlim = [n.ppf(0.001), n.ppf(0.999)]
  
      xs = np.arange(xlim[0], xlim[1], (xlim[1] - xlim[0]) / 1000.0)
      ax.plot(xs, n.pdf(xs), label=label)
      ax.set_xlim(xlim)
  
      if ylim is not None:
          ax.set_ylim(ylim)
  
      if mean_line:
          plt.axvline(mean)
  
      if xlabel is not None:
          ax.set_xlabel(xlabel)
      if ylabel is not None:
          ax.set_ylabel(ylabel)
      return ax
  
imports: from __future__ import absolute_import, division, unicode_literals
  import math
  from math import cos, sin
  import random
  import warnings
  import numpy
  from numpy.linalg import inv
  import scipy.linalg
  import scipy.sparse
  import scipy.sparse.linalg
  from scipy.stats import norm, multivariate_normal
label_desc: Use image node_id 14 for calling a global function with example usage: plot_gaussian_pdf(mean, variance, std, ax, mean_line, xlim, ylim, xlabel, ylabel, label) and returns: ax