docs: def venn(df1, df2, df3=None, labels=None, ix1=None, ix2=None, ix3=None, return_intersection=False, fcols=None):
      """
      Plot a 2 or 3-part venn diagram showing the overlap between 2 or 3 pandas DataFrames.
  
      Provided with two or three Pandas DataFrames, this will return a venn diagram showing the overlap calculated between
      the DataFrame indexes provided as ix1, ix2, ix3. Labels for each DataFrame can be provided as a list in the same order,
      while `fcol` can be used to specify the colors of each section.
  
      :param df1: Pandas DataFrame
      :param df2: Pandas DataFrame
      :param df3: Pandas DataFrame (optional)
      :param labels: List of labels for the provided dataframes
      :param ix1: Index level name of of Dataframe 1 to use for comparison
      :param ix2: Index level name of of Dataframe 2 to use for comparison
      :param ix3: Index level name of of Dataframe 3 to use for comparison
      :param return_intersection: Return the intersection of the supplied indices
      :param fcols: List of colors for the provided dataframes
      :return: ax, or ax with intersection
      """
      try:
          import matplotlib_venn as mplv
      except ImportError:
          raise ImportError("To plot venn diagrams, install matplotlib-venn package: pip install matplotlib-venn")
  
      plt.gcf().clear()
  
  
      if labels is None:
          labels = ["A", "B", "C"]
          
      s1 = _process_ix(df1.index, ix1)
      s2 = _process_ix(df2.index, ix2)
      if df3 is not None:
          s3 = _process_ix(df3.index, ix3)
  
      kwargs = {}
  
      if fcols:
          kwargs['set_colors'] = [fcols[l] for l in labels]
  
      if df3 is not None:
          vn = mplv.venn3([s1,s2,s3], set_labels=labels, **kwargs)
          intersection = s1 & s2 & s3
      else:
          vn = mplv.venn2([s1,s2], set_labels=labels, **kwargs)
          intersection = s1 & s2
  
  
  
      ax = plt.gca()
  
      if return_intersection:
          return ax, list(intersection)
      else:
          return ax