code: def create_information_tear_sheet(
      factor_data, group_neutral=False, by_group=False
  ):
      """
      Creates a tear sheet for information analysis of a factor.
  
      Parameters
      ----------
      factor_data : pd.DataFrame - MultiIndex
          A MultiIndex DataFrame indexed by date (level 0) and asset (level 1),
          containing the values for a single alpha factor, forward returns for
          each period, the factor quantile/bin that factor value belongs to, and
          (optionally) the group the asset belongs to.
          - See full explanation in utils.get_clean_factor_and_forward_returns
      group_neutral : bool
          Demean forward returns by group before computing IC.
      by_group : bool
          If True, display graphs separately for each group.
      """
  
      ic = perf.factor_information_coefficient(
          factor_data, group_neutral
      )
  
      plotting.plot_information_table(ic)
  
      columns_wide = 2
      fr_cols = len(ic.columns)
      rows_when_wide = ((fr_cols - 1) // columns_wide) + 1
      vertical_sections = fr_cols + 3 * rows_when_wide + 2 * fr_cols
      gf = GridFigure(rows=vertical_sections, cols=columns_wide)
  
      ax_ic_ts = [gf.next_row() for _ in range(fr_cols)]
      plotting.plot_ic_ts(ic, ax=ax_ic_ts)
  
      ax_ic_hqq = [gf.next_cell() for _ in range(fr_cols * 2)]
      plotting.plot_ic_hist(ic, ax=ax_ic_hqq[::2])
      plotting.plot_ic_qq(ic, ax=ax_ic_hqq[1::2])
  
      if not by_group:
          mean_monthly_ic = perf.mean_information_coefficient(
              factor_data,
              group_adjust=group_neutral,
              by_group=False,
              by_time="M",
          )
          ax_monthly_ic_heatmap = [
              gf.next_cell() for x in range(fr_cols)
          ]
          plotting.plot_monthly_ic_heatmap(
              mean_monthly_ic, ax=ax_monthly_ic_heatmap
          )
  
      if by_group:
          mean_group_ic = perf.mean_information_coefficient(
              factor_data, group_adjust=group_neutral, by_group=True
          )
  
          plotting.plot_ic_by_group(mean_group_ic, ax=gf.next_row())
  
      plt.show()
      gf.close()
  
file_path: alphalens/alphalens/tears.py
imports: import matplotlib.gridspec
  import matplotlib.pyplot
  import pandas
  import warnings
  from .None import plotting
  from .None import performance
  from .None import utils
label_desc: Use image node_id 3 for calling a global function with example usage: create_information_tear_sheet(factor_data, group_neutral, by_group) without return types