did.visualize.panelview

did.visualize.panelview(
    data,
    unit,
    time,
    treat,
    outcome=None,
    collapse_to_cohort=False,
    subsamp=None,
    units_to_plot=None,
    sort_by_timing=False,
    xlab=None,
    ylab=None,
    figsize=(11, 3),
    noticks=False,
    title=None,
    legend=False,
    ax=None,
    xlim=None,
    ylim=None,
)

Generate a panel view of the treatment variable over time for each unit.

Parameters

Name Type Description Default
data pandas.DataFrame The input dataframe containing the data. required
unit str The column name representing the unit identifier. required
time str The column name representing the time identifier. required
treat str The column name representing the treatment variable. required
outcome str The column name representing the outcome variable. If not None, an outcome plot is generated. None
collapse_to_cohort bool Whether to collapse units into treatment cohorts. False
subsamp int The number of samples to draw from data set for display (default is None). None
sort_by_timing bool Whether to sort the treatment cohorts by the number of treated periods. False
xlab str The label for the x-axis. Default is None, in which case default labels are used. None
ylab str The label for the y-axis. Default is None, in which case default labels are used. None
figsize tuple The figure size for the outcome plot. Default is (11, 3). (11, 3)
noticks bool Whether to display ticks on the plot. Default is False. False
title str The title for the plot. Default is None, in which case no title is displayed. None
legend bool Whether to display a legend. Default is False (since binary treatments are self-explanatory). False
ax matplotlib.pyplot.Axes The axes on which to draw the plot. Default is None, in which case a new figure is created. None
xlim tuple The limits for the x-axis of the plot. Default is None. None
ylim tuple The limits for the y-axis of the plot. Default is None. None
units_to_plot list A list of unit to include in the plot. If None, all units in the dataset are plotted. None

Returns

Name Type Description
ax matplotlib.pyplot.Axes

Examples

import pandas as pd
import numpy as np
import pyfixest as pf

url = "https://raw.githubusercontent.com/py-econometrics/pyfixest/master/pyfixest/did/data/df_het.csv"
df_het = pd.read_csv(url)

# Inspect treatment assignment
pf.panelview(
    data = df_het,
    unit = "unit",
    time = "year",
    treat = "treat",
    subsamp = 50,
    title = "Treatment Assignment"
)

# Outcome plot
pf.panelview(
    data = df_het,
    unit = "unit",
    time = "year",
    outcome = "dep_var",
    treat = "treat",
    subsamp = 50,
    title = "Outcome Plot"
)