From 84b682fae62f0fc0e5d2efa5bb4e56c99a44aa46 Mon Sep 17 00:00:00 2001 From: Rafi Mikail Date: Sun, 8 Dec 2024 22:39:03 +0700 Subject: [PATCH 1/8] Passing collapse to cohort to plot panelview output to add dynamic colors for by cohort --- pyfixest/did/visualize.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/pyfixest/did/visualize.py b/pyfixest/did/visualize.py index 9270abbc..a9e17f4a 100644 --- a/pyfixest/did/visualize.py +++ b/pyfixest/did/visualize.py @@ -211,6 +211,7 @@ def get_treatment_start(x: pd.DataFrame) -> pd.Timestamp: ) data_agg = data_agg.rename(columns={"treatment_start": unit}) + data_agg[unit] = data_agg[unit].fillna('no_treatment') data = data_agg.copy() data_pivot = data_agg.pivot(index=unit, columns=time, values=outcome) @@ -224,6 +225,7 @@ def _plot_panelview_output_plot( time: str, treat: str, outcome: str, + collapse_to_cohort: Optional[bool] = None, ax: Optional[plt.Axes] = None, xlab: Optional[str] = None, ylab: Optional[str] = None, @@ -234,10 +236,13 @@ def _plot_panelview_output_plot( figsize: Optional[tuple] = (11, 3), ) -> plt.Axes: if not ax: - f, ax = plt.subplots(figsize=figsize, dpi=300) + f, ax = plt.subplots(figsize=figsize) for unit_id in data_pivot.index: unit_data = data_pivot.loc[unit_id] - treatment_times = data[(data[unit] == unit_id) & (data[treat])][time] + if collapse_to_cohort: + treatment_times = data[(data[time] == unit_id) & (data[treat])][time] + else: + treatment_times = data[(data[unit] == unit_id) & (data[treat])][time] # If the unit never receives treatment, plot the line in grey if treatment_times.empty: @@ -323,12 +328,13 @@ def _plot_panelview( ax: Optional[plt.Axes] = None, xlab: Optional[str] = None, ylab: Optional[str] = None, + figsize: Optional[tuple] = (11, 3), legend: Optional[bool] = False, noticks: Optional[bool] = False, title: Optional[str] = None, ) -> plt.Axes: if not ax: - f, ax = plt.subplots() + f, ax = plt.subplots(figsize=figsize) cax = ax.matshow(treatment_quilt, cmap="viridis", aspect="auto") f.colorbar(cax) if legend else None ax.set_xlabel(xlab) if xlab else None From 9af62c3c6ea1a3bf0ce7ed453d3c2597e3aaa070 Mon Sep 17 00:00:00 2001 From: Rafi Mikail Date: Sun, 8 Dec 2024 22:53:55 +0700 Subject: [PATCH 2/8] updating documentation --- docs/difference-in-differences.qmd | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/docs/difference-in-differences.qmd b/docs/difference-in-differences.qmd index 2d7b7ac4..fbd73551 100644 --- a/docs/difference-in-differences.qmd +++ b/docs/difference-in-differences.qmd @@ -61,7 +61,7 @@ pf.panelview( ylab="Cohort", xlab="Year", title="Treatment Assignment Cohorts", - figsize=(0.5, 0.5), + figsize=(7, 7), ) ``` @@ -78,7 +78,7 @@ pf.panelview( ylab="Cohort", xlab="Year", title="Treatment Assignment Cohorts", - figsize=(0.5, 0.5), + figsize=(7, 7), ) ``` @@ -98,7 +98,7 @@ pf.panelview( ylab="Unit", xlab="Year", title="Treatment Assignment (all units)", - figsize=(0.5, 0.5), + figsize=(7, 7), ) ``` @@ -118,8 +118,9 @@ pf.panelview( time="year", treat="treat", collapse_to_cohort=True, - title = "Outcome Plot", - figsize=(2, 0.75), + title="Outcome Plot", + legend=True, + figsize=(7, 2.5), ) ``` @@ -143,7 +144,8 @@ pf.panelview( treat="treat", subsamp=100, title = "Outcome Plot", - figsize=(2, 0.75), + legend=True, + figsize=(7, 2.5), ) ``` From 315eee4aab8646d971a859873fb1954790061477 Mon Sep 17 00:00:00 2001 From: Rafi Mikail Date: Sun, 8 Dec 2024 23:21:28 +0700 Subject: [PATCH 3/8] passing figsize to panelview normal, add test notebook --- pyfixest/did/test.ipynb | 218 ++++++++++++++++++++++++++++++++++++++ pyfixest/did/visualize.py | 4 +- 2 files changed, 221 insertions(+), 1 deletion(-) create mode 100644 pyfixest/did/test.ipynb diff --git a/pyfixest/did/test.ipynb b/pyfixest/did/test.ipynb new file mode 100644 index 00000000..1fb52d2d --- /dev/null +++ b/pyfixest/did/test.ipynb @@ -0,0 +1,218 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "\n", + "
\n", + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import pyfixest as pf\n", + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "df_multi_cohort = pd.read_csv(\"data/df_het.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA5sAAAE8CAYAAABO7aVvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA8L0lEQVR4nO3deXhTdd7//1dC25StZbG0LGkHB4Gyr0JZbmVkERkVVEY7OEAFRwVHllGcXjoColSGG9wFcaEog4ygIF9Zy64sylIcdgGBgtCiQhtAbUtzfn/w67mJbSGE0yQtz8d15aL55JNz3id9N+SVk3NiMwzDEAAAAAAAFrIHugAAAAAAQPlD2AQAAAAAWI6wCQAAAACwHGETAAAAAGA5wiYAAAAAwHKETQAAAACA5QibAAAAAADLETYBAAAAAJYjbAIAAAAALEfYBAAAV2Xw4MGy2Wyy2Wxau3ZtoMsBAAQpwiYAIOhlZWUpOTlZLVu2VNWqVVWxYkXdeOONSkpK0jfffHPNyz9y5IjGjRuncePGaeHChddecBlzaXgsvNjtdtWoUUO33XabPv30U8vXmZ2dbT7mqampli8fABB4IYEuAACAy1m/fr369eun06dPe4wfPnxYhw8f1gcffKCXX35ZTzzxhM/rOHLkiMaPHy9JGjRokPr27XstJZcLhmHozJkzWr16tVavXq3x48frueees2z52dnZ5mN+yy23aPDgwZYtGwAQHNizCQAIWsePH1ffvn3NoNm1a1fNnz9fy5Yt00MPPSRJcrvdGjlypJYsWRLIUsuNpKQkffHFF1q2bJnuvvtuc3zChAk6efJkACsDAJQ1hE0AQND617/+pTNnzkiSGjVqpLS0NN17773q1auX3nvvPXNvmGEY+sc//mHeb9y4cebHQS/9iObatWvN8cL73nrrrerWrZs5Z9asWUXmSNLp06eVnJysJk2aqFKlSoqIiFCbNm30xhtveNR88OBBJSUlyel0KiwsTDVr1tQdd9yhVatWecz7bS3z5s1TfHy8KlWqpK5du2rnzp1yu916/vnnVbduXVWqVEm9e/fW0aNHizxO//3vf5WYmKjatWsrLCxMdevW1dChQ3X8+PGrfsxjY2PVpUsX9erVS3PnzlXFihUlSRcuXNDmzZuveP/Vq1erT58+uuGGGxQWFian06nBgwfrwIED5pzBgwerfv365vV169aZj8Wtt9561TUDAIITYRMAELQWLFhg/vy3v/1NDofD4/a///3v5s87d+7Ud999Vyp1HDt2TK1bt9ZLL72kvXv36pdfftHZs2eVnp6u+fPnm/O+/vprtWnTRqmpqTp+/Ljy8/N1+vRpLV26VD169NC0adOKXf769et1//33a9++ffrll1/05ZdfqmfPnnr00Uc1duxYnThxQr/88ouWLVumAQMGeNx36dKluvnmmzV37lxlZmYqPz9fJ06c0Hvvvaf27dvr8OHDPm93eHi4x2Oel5d32flvvfWWunfvriVLluinn35Sfn6+jh8/rlmzZqlt27basmWLz7UAAMoewiYAICidPXvWY89cq1atisxp2rSpQkNDzet79uy56vW8/vrreu2118zrvXv31hdffKEvvvhCzzzzjCRp2LBhysjIkHRxz9+MGTO0bNky/etf/5LT6ZR0ce9qUlKSzp49K0m67777tHjxYv3zn/+U3W6XYRgaOXKkjh07VqSGw4cPa/DgwVq8eLGaN28uScrMzNQ777yj5ORkLViwQNHR0ZKkDRs2aPfu3ZKkn3/+WYMGDVJubq5CQkL04osvasWKFRozZoy5jGHDhl31YyJJ58+fV0pKirKzs82xwtqKc+zYMY0aNUqGYchut+vZZ5/V4sWL1b9/f0kXf5+DBw+WYRh65plnNG/ePPO+rVq1Mh/z119/3ad6AQDBhxMEAQCCksvl8rgeFRVVZI7NZlPNmjWVmZkpScrJybnq9TRv3lw//fSTeb1WrVrq0qWLef306dPm8aAVKlTQsmXLFB8fL0nq1auXOW/Hjh1m2I2JidGcOXMUGhqqO+64Q3v27NEnn3yivLw8ffLJJxo5cqRHDU6nU++++67sdrv27Nmjp556StLFY1QnTpwoSVq5cqXefPNNSRc/qtu0aVOtWLFCP/zwgySpR48e+p//+R9J0p133qmPP/5YR44c0fLly/Xjjz/qhhtu8OrxGD9+vHninkv169dPTZo0KfF+8+fPN/d89uvXTxMmTDDr+uKLL5SZmak9e/bom2++UatWrTzeJIiMjPR4zAEA5QN7NgEAQSkiIsLjemGoupRhGB5BMTIy0vI6Dh48KLfbLUm68cYbzaD5W99++635c5s2bTzC1M0331zsvEJt27aV3X7xv+QaNWqY4+3atTN/vjQsFu5t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8UpMTNSECROK3F7cnk2n06mcnBxFRERYsh1WKazT4XAEuBIECj0AiT4APQB6APQAgrsHXC6XIiMjr5ipAvox2m3btunUqVNq06aNOVZQUKD169frjTfeUG5uripUqHDZZYSGhqp169Y6ePBgsbc7HI6g/AUBAAAAQHkW0LB52223aefOnR5jSUlJaty4sZ5++ukrBk3pYjjduXOn7rjjjtIqEwAAAABwlQIaNqtWrapmzZp5jFWuXFk1a9Y0xwcOHKi6deuax3Q+//zz6tixoxo0aKDs7GxNnjxZR48e1dChQ/1ePwAAAACgeEFxNtrLycjIkN3+f+cxOnPmjB5++GFlZmaqevXqatu2rTZu3KgmTZoEsEoAAAAAwKUCeoKgQPD2YNZACOaDgOEf9AAk+gD0AOgB0AMI7h7wNlMF/KtPAAAAAADlT9B/jBYArjeXHjoAAABQVhE2ASDIuN3uQJcAAABwzXj7HAAAAABgOcImAAAAAMByhE0ACEI2my3QJQAAAFwTwiYABBlOEAQAAMoDThAEAEGGEwQBAIDygLfPAQAAAACWI2wCAAAAACxH2AwynBQEAAAAQHlA2AwyhmEEugQAAAAAuGaETQAAAACA5QibAAAAAADLETYBAAAAAJYjbAIAAAAALEfYBAAAAABYjrAJAAAABBm+Dg/lAWETAAAACEIETpR1QRU2X3rpJdlsNo0cOfKy8+bNm6fGjRsrPDxczZs315IlS/xTIAAAAOAHhmHw/eso84ImbG7ZskVvv/22WrRocdl5GzduVGJiooYMGaL09HT17dtXffv21a5du/xUaeniHSwAAAAA5UFQhM1z585pwIABeuedd1S9evXLzn311Vd1++2366mnnlJ8fLwmTJigNm3a6I033vBTtaWLd7AAAAAAlAchgS5AkoYPH64+ffqoe/fueuGFFy47d9OmTRo9erTHWK9evbRw4cJi5+fm5io3N9e87nK5ih0PBvn5+X5bV+Ee1MJ/rfiohs1mK7K84sYud19f6rDb7Vd1v2tZV2kuS/K9B7ypw8pa7Xa73G73NS3jUoW1WbnM0mL1thfHn88F3rLbL743WRZ+R9747XPgpQr/Pqx+8+9yn1z57W2F687LywuKNyEvfZ692udc/J+rea4LxucBf/HH82xZcD33gC9++9x06WvQYOgnX547g7kHvM1RAQ+b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e8xZs2aN0apVKyMsLMy48cYbPdaBwPFXD0yaNMn4/e9/b4SHhxs1atQwbr31VmP16tX+2kxchlU9cMsttxS7nMOHD5tzvvnmG6NLly6Gw+Ew6tata7z00kt+2kpcjr96IDU11YiPjzcqVapkREREGDfffLPH12ggsKzog7Fjxxa7jLi4OI91BeNrApth/P9nJQEAAAAAwCIcswkAAAAAsBxhEwAAAABgOcImAAAAAMByhE0AAAAAgOUImwAAAAAAyxE2AQAAAACWI2wCAAAAACxH2AQAAAAAWI6wCQAAAACwHGETAAAAAGA5wiYAAOVIQUGB3G53oMsAAICwCQBAafnggw9Us2ZN5ebmeoz37dtXf/nLXyRJn332mdq0aaPw8HDdeOONGj9+vC5cuGDOnTp1qpo3b67KlSvL6XRq2LBhOnfunHl7amqqqlWrpkWLFqlJkyZyOBzKyMjwzwYCAHAZhE0AAEpJ//79VVBQoEWLFpljp06d0uLFi/XQQw/piy++0MCBAzVixAjt2bNHb7/9tlJTU/Xiiy+a8+12u1577TXt3r1bs2bN0urVqzVmzBiP9fz888+aNGmS3n33Xe3evVu1atXy2zYCAFASm2EYRqCLAACgvBo2bJiOHDmiJUuWSLq4p/LNN9/UwYMH1aNHD912221KTk4258+ePVtjxozRiRMnil3e/Pnz9eijj+rHH3+UdHHPZlJSknbs2KGWLVuW/gYBAOAlwiYAAKUoPT1d7du319GjR1W3bl21aNFC/fv31z//+U9FRUXp3LlzqlChgjm/oKBAv/76q86fP69KlSpp5cqVSklJ0b59++RyuXThwgWP21NTU/XII4/o119/lc1mC+CWAgDgKSTQBQAAUJ61bt1aLVu21AcffKCePXtq9+7dWrx4sSTp3LlzGj9+vO65554i9wsPD9eRI0f0xz/+UY899phefPFF1ahRQ19++aWGDBmivLw8VapUSZJUsWJFgiYAIOgQNgEAKGVDhw7VK6+8ou+//17du3eX0+mUJLVp00b79+9XgwYNir3ftm3b5Ha7NWXKFNntF0+z8PHHH/utbgAArgVhEwCAUvbnP/9ZTz75pN555x198MEH5vhzzz2nP/7xj4qNjdV9990nu92ub775Rrt27dILL7ygBg0aKD8/X6+//rruvPNObdiwQdOnTw/glgAA4D3ORgsAQCmLjIzUvffeqypVqqhv377meK9evfT5559rxYoVat++vTp27KiXX35ZcXFxkqSWLVtq6tSpmjRpkpo1a6Z///vfSklJCdBWAABwdThBEAAAfnDbbbepadOmeu211wJdCgAAfkHYBACgFJ05c0Zr167Vfffdpz179qhRo0aBLgkAAL/gmE0AAEpR69atdebMGU2aNImgCQC4rrBnEwAAAABgOU4QBAAAAACwHGETAAAAAGA5wiYAAAAAwHKETQAAAACA5QibAAAAAADLETYBAAAAAJYjbAIAAAAALEfYBAAAAABY7v8DTLRRSoY42tEAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "pf.panelview(\n", + " df_multi_cohort,\n", + " outcome=\"dep_var\",\n", + " unit=\"unit\",\n", + " time=\"year\",\n", + " treat=\"treat\",\n", + " collapse_to_cohort=True,\n", + " title = \"Outcome Plot\",\n", + " # figsize=(7, 2.5),\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6gAAAFBCAYAAAB6lYJLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA+a0lEQVR4nO3deVxV5d7///dGJqe9ARWQBMXMATVLTOKYQ0ngkGnZMcuMjKNmoJmZZienJkvL8Zim56TVF8sstfScNHMijUwx0sxMyxwypCT2Fk1AWL8/+rHvtqCAAXsZr+fjsR43+7quvdZnwdU6vu81WQzDMAQAAAAAgJt5uLsAAAAAAAAkAioAAAAAwCQIqAAAAAAAUyCgAgAAAABMgYAKAAAAADAFAioAAAAAwBQIqAAAAAAAUyCgAgAAAABMgYAKAAAAADAFAioAACbxwAMPqEmTJu4u44rxzjvvKCAgQDk5OeX+brdu3dStWzfn5x9++EEWi0VLly6tuALLaMuWLbJYLNqyZUuFrG/hwoUKCwtTbm5uhawPAKoSARUAriAWi6VMS0X9Q7c0r7zyilv+QX85vv76a02ZMkU//PBDub87btw4WSwW3X333RVfGHT27FlNmTKlXPO2oKBAkydP1siRI1WnTp3KK85Nli1bptmzZ1/Wdx944AHl5eXp1VdfrdiiAKAKeLq7AABA2b355psun9944w1t2LChWHurVq2qpJ5XXnlF9evX1wMPPFAl2/szvv76a02dOlXdunUr11lKwzD01ltvqUmTJlqzZo1Onz6tunXrVkqNixcvVmFhYaWs28zOnj2rqVOnSpLLWc1LWbNmjQ4cOKBhw4ZVYmVVo0uXLvrtt9/k7e3tbFu2bJm++uorjR49utzr8/X1VXx8vGbOnKmRI0fKYrFUYLUAULkIqABwBbnvvvtcPn/22WfasGFDsfYLnT17VrVq1arM0v6ytmzZouPHj2vTpk2Ki4vTypUrFR8fXynb8vLyqpT1/hUtWbJEnTp10lVXXeXuUv40Dw8P+fr6Vug6BwwYoOnTp2vz5s265ZZbKnTdAFCZuMQXAP5iunXrpjZt2igtLU1dunRRrVq19OSTT0qScnNzNXnyZDVr1kw+Pj4KDQ3VuHHjit2rtmTJEt1yyy0KDAyUj4+PIiIitGDBApcxTZo00b59+7R161bnpcVFZ7+WLl0qi8Wibdu2adSoUWrQoIH8/Pw0fPhw5eXlKTs7W/fff7/8/f3l7++vcePGyTAMl/UXFhZq9uzZat26tXx9fRUUFKThw4fr119/LVbHbbfdpm3btqljx47y9fVV06ZN9cYbbzjHLF26VH//+98lSTfffHO5LoVOTk5WRESEbr75ZsXExCg5ObnEcfPmzVPr1q1Vq1Yt+fv7q0OHDlq2bJmz//Tp0xo9erSaNGkiHx8fBQYG6tZbb9Xu3budY0q6B/XUqVMaPHiwrFar/Pz8FB8fry+//LLY/ZIPPPCA6tSpox9//FH9+vVTnTp11KBBA40dO1YFBQXOcUX3Wr700kuaP3++mjZtqlq1aik2NlbHjh2TYRh65pln1KhRI9WsWVN9+/ZVVlZWsf398MMP1blzZ9WuXVt169ZV7969tW/fPpcxZanphx9+UIMGDSRJU6dOdf5tpkyZctG/yblz57Ru3TrFxMQU6yvL3P0zpkyZUuIZyaI5/8dLyMsyN6Xi96B269ZN//3vf3XkyBHn7+OP86K0uSZJkZGRCggI0Pvvv19h+w4AVYEzqADwF3Tq1Cn17NlTAwcO1H333aegoCAVFhbq9ttv17Zt2zRs2DC1atVKe/fu1axZs/Ttt99q9erVzu8vWLBArVu31u233y5PT0+tWbNGDz/8sAoLC5WYmChJmj17tvP+v3/+85+SpKCgIJc6Ro4cqeDgYE2dOlWfffaZFi1aJD8/P3366acKCwvT888/r//973+aMWOG2rRpo/vvv9/53eHDh2vp0qUaMmSIRo0apcOHD+tf//qXvvjiC23fvt3lbOOhQ4d01113KSEhQfHx8Xrttdf0wAMPKDIyUq1bt1aXLl00atQozZ07V08++aTzEujSLoXOzc3Ve++9p8cee0ySdM8992jIkCHKyMhQcHCwc9zixYs1atQo3XXXXXrkkUd07tw57dmzRzt27NC9994rSXrooYf07rvvKikpSRERETp16pS2bdum/fv3q3379iVuv7CwUH369NHnn3+uESNGqGXLlnr//fcvega3oKBAcXFxioqK0ksvvaSPP/5YL7/8sq6++mqNGDHCZWxycrLy8vI0cuRIZWVlafr06RowYIBuueUWbdmyRePHj9ehQ4c0b948jR07Vq+99przu2+++abi4+MVFxenF198UWfPntWCBQt00003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q9C6AKCycQYVAKqJwYMH65133tFDDz2kzZs3q1OnTiooKNA333yjd955R+vXr1eHDh0UGxsrb29v9enTR8OHD1dOTo4WL16swMBA/fTTTy7rjIyM1IIFC/Tss8+qWbNmCgwMvOi9ieXRtWtXDR8+XNOmTVN6erpiY2Pl5eWlgwcPasWKFZozZ47uuuuucq3zuuuuU40aNfTiiy/KbrfLx8fH+b7MCy1btkyGYej2228vcV29evWSp6enkpOTFRUVpdjYWAUHB6tTp04KCgrS/v379a9//Uu9e/dW3bp1lZ2drUaNGumuu+5Su3btVKdOHX388cfauXNniZcPF+nXr586duyoxx57TIcOHVLLli31wQcfON9L6o57C61WqxYsWKDBgwerffv2GjhwoBo0aKCjR4/qv//9rzp16qR//etf5VpnzZo1FRERoeXLl6t58+YKCAhQmzZt1KZNmxLH+/r6KjY2Vh9//LGefvppZ3t55u7lio2NVVhYmBISEvT444+rRo0aeu2115y/g4oSGRmp5cuXa8yYMbrhhhtUp04d9enTp9S5ViQtLU1ZWVnq27dvhdUEAFWBgAoA1YSHh4dWr16tWbNm6Y033tCqVatUq1YtNW3aVI888ojzgT8tWrTQu+++q6eeekpjx45VcHCw832VDz74oMs6J02apCNHjmj69Ok6ffq0unbtWiEBVZIWLlyoyMhIvfrqq3ryySfl6empJk2a6L777ivxgTClCQ4O1sKFCzVt2jQlJCSooKBAmzdvLjGgJicnKywsTO3atStxXX5+frrpppu0fPlyzZw5U8OHD1dycrJmzpypnJwcNWrUSKNGjdJTTz0l6fczhA8//LA++ugjrVy5UoWFhWrWrJleeeWVYu8n/aMaNWrov//9rx555BG9/vrr8vDw0B133KHJkyerU6dOLpdzVqV7771XISEheuGFFzRjxgzl5ubqqquuUufOnYs9Pbqs/v3vf2vkyJF69NFHlZeXp8mTJ180oErSgw8+qP79++vYsWPO+6fLM3cvl5eXl1atWqWHH35YEydOVHBwsEaPHi1/f//L3veSPPzww0pPT9eSJUs0a9YsNW7c2Bm8LzXXiqxYsUJhYWEV9t8jAFQVi/FnniABAACq3OrVq3XHHXdo27ZtlxXW/woKCgoUERGhAQMGlHgpeHWWm5urJk2a6Ikn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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "pf.panelview(\n", + " df_multi_cohort,\n", + " unit=\"unit\",\n", + " time=\"year\",\n", + " treat=\"treat\",\n", + " sort_by_timing=True,\n", + " ylab=\"Unit\",\n", + " xlab=\"Year\",\n", + " title=\"Treatment Assignment (all units)\",\n", + " figsize=(3, 11),\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.7" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/pyfixest/did/visualize.py b/pyfixest/did/visualize.py index a9e17f4a..381a7ea8 100644 --- a/pyfixest/did/visualize.py +++ b/pyfixest/did/visualize.py @@ -135,6 +135,7 @@ def panelview( time=time, treat=treat, outcome=outcome, + collapse_to_cohort=collapse_to_cohort, ax=ax, xlab=xlab, ylab=ylab, @@ -161,6 +162,7 @@ def panelview( ax=ax, xlab=xlab, ylab=ylab, + figsize=figsize, legend=legend, noticks=noticks, title=title, @@ -249,7 +251,7 @@ def _plot_panelview_output_plot( ax.plot( unit_data.index, unit_data.values, - color="#999999", + color="#FFFFFF", linewidth=0.5, alpha=0.5, ) From f47e191289620fb97a7c38316ffef9c894ffd73b Mon Sep 17 00:00:00 2001 From: Rafi Mikail Date: Mon, 9 Dec 2024 00:02:22 +0700 Subject: [PATCH 4/8] changing the size of panelview --- docs/difference-in-differences.qmd | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/difference-in-differences.qmd b/docs/difference-in-differences.qmd index fbd73551..18bf7cbd 100644 --- a/docs/difference-in-differences.qmd +++ b/docs/difference-in-differences.qmd @@ -61,7 +61,7 @@ pf.panelview( ylab="Cohort", xlab="Year", title="Treatment Assignment Cohorts", - figsize=(7, 7), + figsize=(5, 5), ) ``` @@ -78,7 +78,7 @@ pf.panelview( ylab="Cohort", xlab="Year", title="Treatment Assignment Cohorts", - figsize=(7, 7), + figsize=(5, 5), ) ``` @@ -98,7 +98,7 @@ pf.panelview( ylab="Unit", xlab="Year", title="Treatment Assignment (all units)", - figsize=(7, 7), + figsize=(5, 5), ) ``` From 4de2fd0042fedcdc91e09f6b0c2788a71a7bafed Mon Sep 17 00:00:00 2001 From: Rafi Mikail Date: Mon, 9 Dec 2024 00:06:45 +0700 Subject: [PATCH 5/8] removing test file --- pyfixest/did/test.ipynb | 218 ---------------------------------------- 1 file changed, 218 deletions(-) delete mode 100644 pyfixest/did/test.ipynb diff --git a/pyfixest/did/test.ipynb b/pyfixest/did/test.ipynb deleted file mode 100644 index 1fb52d2d..00000000 --- a/pyfixest/did/test.ipynb +++ /dev/null @@ -1,218 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "
\n", - " \n", - " " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "\n", - "
\n", - " \n", - " " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import pyfixest as pf\n", - "import pandas as pd" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "df_multi_cohort = pd.read_csv(\"data/df_het.csv\")" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA5sAAAE8CAYAAABO7aVvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA8L0lEQVR4nO3deXhTdd7//1dC25StZbG0LGkHB4Gyr0JZbmVkERkVVEY7OEAFRwVHllGcXjoColSGG9wFcaEog4ygIF9Zy64sylIcdgGBgtCiQhtAbUtzfn/w67mJbSGE0yQtz8d15aL55JNz3id9N+SVk3NiMwzDEAAAAAAAFrIHugAAAAAAQPlD2AQAAAAAWI6wCQAAAACwHGETAAAAAGA5wiYAAAAAwHKETQAAAACA5QibAAAAAADLETYBAAAAAJYjbAIAAAAALEfYBAAAV2Xw4MGy2Wyy2Wxau3ZtoMsBAAQpwiYAIOhlZWUpOTlZLVu2VNWqVVWxYkXdeOONSkpK0jfffHPNyz9y5IjGjRuncePGaeHChddecBlzaXgsvNjtdtWoUUO33XabPv30U8vXmZ2dbT7mqampli8fABB4IYEuAACAy1m/fr369eun06dPe4wfPnxYhw8f1gcffKCXX35ZTzzxhM/rOHLkiMaPHy9JGjRokPr27XstJZcLhmHozJkzWr16tVavXq3x48frueees2z52dnZ5mN+yy23aPDgwZYtGwAQHNizCQAIWsePH1ffvn3NoNm1a1fNnz9fy5Yt00MPPSRJcrvdGjlypJYsWRLIUsuNpKQkffHFF1q2bJnuvvtuc3zChAk6efJkACsDAJQ1hE0AQND617/+pTNnzkiSGjVqpLS0NN17773q1auX3nvvPXNvmGEY+sc//mHeb9y4cebHQS/9iObatWvN8cL73nrrrerWrZs5Z9asWUXmSNLp06eVnJysJk2aqFKlSoqIiFCbNm30xhtveNR88OBBJSUlyel0KiwsTDVr1tQdd9yhVatWecz7bS3z5s1TfHy8KlWqpK5du2rnzp1yu916/vnnVbduXVWqVEm9e/fW0aNHizxO//3vf5WYmKjatWsrLCxMdevW1dChQ3X8+PGrfsxjY2PVpUsX9erVS3PnzlXFihUlSRcuXNDmzZuveP/Vq1erT58+uuGGGxQWFian06nBgwfrwIED5pzBgwerfv365vV169aZj8Wtt9561TUDAIITYRMAELQWLFhg/vy3v/1NDofD4/a///3v5s87d+7Ud999Vyp1HDt2TK1bt9ZLL72kvXv36pdfftHZs2eVnp6u+fPnm/O+/vprtWnTRqmpqTp+/Ljy8/N1+vRpLV26VD169NC0adOKXf769et1//33a9++ffrll1/05ZdfqmfPnnr00Uc1duxYnThxQr/88ouWLVumAQMGeNx36dKluvnmmzV37lxlZmYqPz9fJ06c0Hvvvaf27dvr8OHDPm93eHi4x2Oel5d32flvvfWWunfvriVLluinn35Sfn6+jh8/rlmzZqlt27basmWLz7UAAMoewiYAICidPXvWY89cq1atisxp2rSpQkNDzet79uy56vW8/vrreu2118zrvXv31hdffKEvvvhCzzzzjCRp2LBhysjIkHRxz9+MGTO0bNky/etf/5LT6ZR0ce9qUlKSzp49K0m67777tHjxYv3zn/+U3W6XYRgaOXKkjh07VqSGw4cPa/DgwVq8eLGaN28uScrMzNQ777yj5ORkLViwQNHR0ZKkDRs2aPfu3ZKkn3/+WYMGDVJubq5CQkL04osvasWKFRozZoy5jGHDhl31YyJJ58+fV0pKirKzs82xwtqKc+zYMY0aNUqGYchut+vZZ5/V4sWL1b9/f0kXf5+DBw+WYRh65plnNG/ePPO+rVq1Mh/z119/3ad6AQDBhxMEAQCCksvl8rgeFRVVZI7NZlPNmjWVmZkpScrJybnq9TRv3lw//fSTeb1WrVrq0qWLef306dPm8aAVKlTQsmXLFB8fL0nq1auXOW/Hjh1m2I2JidGcOXMUGhqqO+64Q3v27NEnn3yivLw8ffLJJxo5cqRHDU6nU++++67sdrv27Nmjp556StLFY1QnTpwoSVq5cqXefPNNSRc/qtu0aVOtWLFCP/zwgySpR48e+p//+R9J0p133qmPP/5YR44c0fLly/Xjjz/qhhtu8OrxGD9+vHninkv169dPTZo0KfF+8+fPN/d89uvXTxMmTDDr+uKLL5SZmak9e/bom2++UatWrTzeJIiMjPR4zAEA5QN7NgEAQSkiIsLjemGoupRhGB5BMTIy0vI6Dh48KLfbLUm68cYbzaD5W99++635c5s2bTzC1M0331zsvEJt27aV3X7xv+QaNWqY4+3atTN/vjQsFu5t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8UpMTNSECROK3F7cnk2n06mcnBxFRERYsh1WKazT4XAEuBIECj0AiT4APQB6APQAgrsHXC6XIiMjr5ipAvox2m3btunUqVNq06aNOVZQUKD169frjTfeUG5uripUqHDZZYSGhqp169Y6ePBgsbc7HI6g/AUBAAAAQHkW0LB52223aefOnR5jSUlJaty4sZ5++ukrBk3pYjjduXOn7rjjjtIqEwAAAABwlQIaNqtWrapmzZp5jFWuXFk1a9Y0xwcOHKi6deuax3Q+//zz6tixoxo0aKDs7GxNnjxZR48e1dChQ/1ePwAAAACgeEFxNtrLycjIkN3+f+cxOnPmjB5++GFlZmaqevXqatu2rTZu3KgmTZoEsEoAAAAAwKUCeoKgQPD2YNZACOaDgOEf9AAk+gD0AOgB0AMI7h7wNlMF/KtPAAAAAADlT9B/jBYArjeXHjoAAABQVhE2ASDIuN3uQJcAAABwzXj7HAAAAABgOcImAAAAAMByhE0ACEI2my3QJQAAAFwTwiYABBlOEAQAAMoDThAEAEGGEwQBAIDygLfPAQAAAACWI2wCAAAAACxH2AwynBQEAAAAQHlA2AwyhmEEugQAAAAAuGaETQAAAACA5QibAAAAAADLETYBAAAAAJYjbAIAAAAALEfYBAAAAABYjrAJAAAABBm+Dg/lAWETAAAACEIETpR1QRU2X3rpJdlsNo0cOfKy8+bNm6fGjRsrPDxczZs315IlS/xTIAAAAOAHhmHw/eso84ImbG7ZskVvv/22WrRocdl5GzduVGJiooYMGaL09HT17dtXffv21a5du/xUaeniHSwAAAAA5UFQhM1z585pwIABeuedd1S9evXLzn311Vd1++2366mnnlJ8fLwmTJigNm3a6I033vBTtaWLd7AAAAAAlAchgS5AkoYPH64+ffqoe/fueuGFFy47d9OmTRo9erTHWK9evbRw4cJi5+fm5io3N9e87nK5ih0PBvn5+X5bV+Ee1MJ/rfiohs1mK7K84sYud19f6rDb7Vd1v2tZV2kuS/K9B7ypw8pa7Xa73G73NS3jUoW1WbnM0mL1thfHn88F3rLbL743WRZ+R9747XPgpQr/Pqx+8+9yn1z57W2F687LywuKNyEvfZ692udc/J+rea4LxucBf/HH82xZcD33gC9++9x06WvQYOgnX547g7kHvM1RAQ+b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e8xZs2aN0apVKyMsLMy48cYbPdaBwPFXD0yaNMn4/e9/b4SHhxs1atQwbr31VmP16tX+2kxchlU9cMsttxS7nMOHD5tzvvnmG6NLly6Gw+Ew6tata7z00kt+2kpcjr96IDU11YiPjzcqVapkREREGDfffLPH12ggsKzog7Fjxxa7jLi4OI91BeNrApth/P9nJQEAAAAAwCIcswkAAAAAsBxhEwAAAABgOcImAAAAAMByhE0AAAAAgOUImwAAAAAAyxE2AQAAAACWI2wCAAAAACxH2AQAAAAAWI6wCQAAAACwHGETAAAAAGA5wiYAAOVIQUGB3G53oMsAAICwCQBAafnggw9Us2ZN5ebmeoz37dtXf/nLXyRJn332mdq0aaPw8HDdeOONGj9+vC5cuGDOnTp1qpo3b67KlSvL6XRq2LBhOnfunHl7amqqqlWrpkWLFqlJkyZyOBzKyMjwzwYCAHAZhE0AAEpJ//79VVBQoEWLFpljp06d0uLFi/XQQw/piy++0MCBAzVixAjt2bNHb7/9tlJTU/Xiiy+a8+12u1577TXt3r1bs2bN0urVqzVmzBiP9fz888+aNGmS3n33Xe3evVu1atXy2zYCAFASm2EYRqCLAACgvBo2bJiOHDmiJUuWSLq4p/LNN9/UwYMH1aNHD912221KTk4258+ePVtjxozRiRMnil3e/Pnz9eijj+rHH3+UdHHPZlJSknbs2KGWLVuW/gYBAOAlwiYAAKUoPT1d7du319GjR1W3bl21aNFC/fv31z//+U9FRUXp3LlzqlChgjm/oKBAv/76q86fP69KlSpp5cqVSklJ0b59++RyuXThwgWP21NTU/XII4/o119/lc1mC+CWAgDgKSTQBQAAUJ61bt1aLVu21AcffKCePXtq9+7dWrx4sSTp3LlzGj9+vO65554i9wsPD9eRI0f0xz/+UY899phefPFF1ahRQ19++aWGDBmivLw8VapUSZJUsWJFgiYAIOgQNgEAKGVDhw7VK6+8ou+//17du3eX0+mUJLVp00b79+9XgwYNir3ftm3b5Ha7NWXKFNntF0+z8PHHH/utbgAArgVhEwCAUvbnP/9ZTz75pN555x198MEH5vhzzz2nP/7xj4qNjdV9990nu92ub775Rrt27dILL7ygBg0aKD8/X6+//rruvPNObdiwQdOnTw/glgAA4D3ORgsAQCmLjIzUvffeqypVqqhv377meK9evfT5559rxYoVat++vTp27KiXX35ZcXFxkqSWLVtq6tSpmjRpkpo1a6Z///vfSklJCdBWAABwdThBEAAAfnDbbbepadOmeu211wJdCgAAfkHYBACgFJ05c0Zr167Vfffdpz179qhRo0aBLgkAAL/gmE0AAEpR69atdebMGU2aNImgCQC4rrBnEwAAAABgOU4QBAAAAACwHGETAAAAAGA5wiYAAAAAwHKETQAAAACA5QibAAAAAADLETYBAAAAAJYjbAIAAAAALEfYBAAAAABY7v8DTLRRSoY42tEAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "pf.panelview(\n", - " df_multi_cohort,\n", - " outcome=\"dep_var\",\n", - " unit=\"unit\",\n", - " time=\"year\",\n", - " treat=\"treat\",\n", - " collapse_to_cohort=True,\n", - " title = \"Outcome Plot\",\n", - " # figsize=(7, 2.5),\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6gAAAFBCAYAAAB6lYJLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA+a0lEQVR4nO3deVxV5d7///dGJqe9ARWQBMXMATVLTOKYQ0ngkGnZMcuMjKNmoJmZZienJkvL8Zim56TVF8sstfScNHMijUwx0sxMyxwypCT2Fk1AWL8/+rHvtqCAAXsZr+fjsR43+7quvdZnwdU6vu81WQzDMAQAAAAAgJt5uLsAAAAAAAAkAioAAAAAwCQIqAAAAAAAUyCgAgAAAABMgYAKAAAAADAFAioAAAAAwBQIqAAAAAAAUyCgAgAAAABMgYAKAAAAADAFAioAACbxwAMPqEmTJu4u44rxzjvvKCAgQDk5OeX+brdu3dStWzfn5x9++EEWi0VLly6tuALLaMuWLbJYLNqyZUuFrG/hwoUKCwtTbm5uhawPAKoSARUAriAWi6VMS0X9Q7c0r7zyilv+QX85vv76a02ZMkU//PBDub87btw4WSwW3X333RVfGHT27FlNmTKlXPO2oKBAkydP1siRI1WnTp3KK85Nli1bptmzZ1/Wdx944AHl5eXp1VdfrdiiAKAKeLq7AABA2b355psun9944w1t2LChWHurVq2qpJ5XXnlF9evX1wMPPFAl2/szvv76a02dOlXdunUr11lKwzD01ltvqUmTJlqzZo1Onz6tunXrVkqNixcvVmFhYaWs28zOnj2rqVOnSpLLWc1LWbNmjQ4cOKBhw4ZVYmVVo0uXLvrtt9/k7e3tbFu2bJm++uorjR49utzr8/X1VXx8vGbOnKmRI0fKYrFUYLUAULkIqABwBbnvvvtcPn/22WfasGFDsfYLnT17VrVq1arM0v6ytmzZouPHj2vTpk2Ki4vTypUrFR8fXynb8vLyqpT1/hUtWbJEnTp10lVXXeXuUv40Dw8P+fr6Vug6BwwYoOnTp2vz5s265ZZbKnTdAFCZuMQXAP5iunXrpjZt2igtLU1dunRRrVq19OSTT0qScnNzNXnyZDVr1kw+Pj4KDQ3VuHHjit2rtmTJEt1yyy0KDAyUj4+PIiIitGDBApcxTZo00b59+7R161bnpcVFZ7+WLl0qi8Wibdu2adSoUWrQoIH8/Pw0fPhw5eXlKTs7W/fff7/8/f3l7++vcePGyTAMl/UXFhZq9uzZat26tXx9fRUUFKThw4fr119/LVbHbbfdpm3btqljx47y9fVV06ZN9cYbbzjHLF26VH//+98lSTfffHO5LoVOTk5WRESEbr75ZsXExCg5ObnEcfPmzVPr1q1Vq1Yt+fv7q0OHDlq2bJmz//Tp0xo9erSaNGkiHx8fBQYG6tZbb9Xu3budY0q6B/XUqVMaPHiwrFar/Pz8FB8fry+//LLY/ZIPPPCA6tSpox9//FH9+vVTnTp11KBBA40dO1YFBQXOcUX3Wr700kuaP3++mjZtqlq1aik2NlbHjh2TYRh65pln1KhRI9WsWVN9+/ZVVlZWsf398MMP1blzZ9WuXVt169ZV7969tW/fPpcxZanphx9+UIMGDSRJU6dOdf5tpkyZctG/yblz57Ru3TrFxMQU6yvL3P0zpkyZUuIZyaI5/8dLyMsyN6Xi96B269ZN//3vf3XkyBHn7+OP86K0uSZJkZGRCggI0Pvvv19h+w4AVYEzqADwF3Tq1Cn17NlTAwcO1H333aegoCAVFhbq9ttv17Zt2zRs2DC1atVKe/fu1axZs/Ttt99q9erVzu8vWLBArVu31u233y5PT0+tWbNGDz/8sAoLC5WYmChJmj17tvP+v3/+85+SpKCgIJc6Ro4cqeDgYE2dOlWfffaZFi1aJD8/P3366acKCwvT888/r//973+aMWOG2rRpo/vvv9/53eHDh2vp0qUaMmSIRo0apcOHD+tf//qXvvjiC23fvt3lbOOhQ4d01113KSEhQfHx8Xrttdf0wAMPKDIyUq1bt1aXLl00atQozZ07V08++aTzEujSLoXOzc3Ve++9p8cee0ySdM8992jIkCHKyMhQcHCwc9zixYs1atQo3XXXXXrkkUd07tw57dmzRzt27NC9994rSXrooYf07rvvKikpSRERETp16pS2bdum/fv3q3379iVuv7CwUH369NHnn3+uESNGqGXLlnr//fcvega3oKBAcXFxioqK0ksvvaSPP/5YL7/8sq6++mqNGDHCZWxycrLy8vI0cuRIZWVlafr06RowYIBuueUWbdmyRePHj9ehQ4c0b948jR07Vq+99przu2+++abi4+MVFxenF198UWfPntWCBQt00003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q9C6AKCycQYVAKqJwYMH65133tFDDz2kzZs3q1OnTiooKNA333yjd955R+vXr1eHDh0UGxsrb29v9enTR8OHD1dOTo4WL16swMBA/fTTTy7rjIyM1IIFC/Tss8+qWbNmCgwMvOi9ieXRtWtXDR8+XNOmTVN6erpiY2Pl5eWlgwcPasWKFZozZ47uuuuucq3zuuuuU40aNfTiiy/KbrfLx8fH+b7MCy1btkyGYej2228vcV29evWSp6enkpOTFRUVpdjYWAUHB6tTp04KCgrS/v379a9//Uu9e/dW3bp1lZ2drUaNGumuu+5Su3btVKdOHX388cfauXNniZcPF+nXr586duyoxx57TIcOHVLLli31wQcfON9L6o57C61WqxYsWKDBgwerffv2GjhwoBo0aKCjR4/qv//9rzp16qR//etf5VpnzZo1FRERoeXLl6t58+YKCAhQmzZt1KZNmxLH+/r6KjY2Vh9//LGefvppZ3t55u7lio2NVVhYmBISEvT444+rRo0aeu2115y/g4oSGRmp5cuXa8yYMbrhhhtUp04d9enTp9S5ViQtLU1ZWVnq27dvhdUEAFWBgAoA1YSHh4dWr16tWbNm6Y033tCqVatUq1YtNW3aVI888ojzgT8tWrTQu+++q6eeekpjx45VcHCw832VDz74oMs6J02apCNHjmj69Ok6ffq0unbtWiEBVZIWLlyoyMhIvfrqq3ryySfl6empJk2a6L777ivxgTClCQ4O1sKFCzVt2jQlJCSooKBAmzdvLjGgJicnKywsTO3atStxXX5+frrpppu0fPlyzZw5U8OHD1dycrJmzpypnJwcNWrUSKNGjdJTTz0l6fczhA8//LA++ugjrVy5UoWFhWrWrJleeeWVYu8n/aMaNWrov//9rx555BG9/vrr8vDw0B133KHJkyerU6dOLpdzVqV7771XISEheuGFFzRjxgzl5ubqqquuUufOnYs9Pbqs/v3vf2vkyJF69NFHlZeXp8mTJ180oErSgw8+qP79++vYsWPO+6fLM3cvl5eXl1atWqWHH35YEydOVHBwsEaPHi1/f//L3veSPPzww0pPT9eSJUs0a9YsNW7c2Bm8LzXXiqxYsUJhYWEV9t8jAFQVi/FnniABAACq3OrVq3XHHXdo27ZtlxXW/woKCgoUERGhAQMGlHgpeHWWm5urJk2a6Ikn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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "pf.panelview(\n", - " df_multi_cohort,\n", - " unit=\"unit\",\n", - " time=\"year\",\n", - " treat=\"treat\",\n", - " sort_by_timing=True,\n", - " ylab=\"Unit\",\n", - " xlab=\"Year\",\n", - " title=\"Treatment Assignment (all units)\",\n", - " figsize=(3, 11),\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.7" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} From cb19269d72a250eee3a9dd4899152527e148132f Mon Sep 17 00:00:00 2001 From: Rafi Mikail Date: Mon, 9 Dec 2024 00:20:14 +0700 Subject: [PATCH 6/8] change the color back to grey --- pyfixest/did/visualize.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfixest/did/visualize.py b/pyfixest/did/visualize.py index 381a7ea8..6bbc4a41 100644 --- a/pyfixest/did/visualize.py +++ b/pyfixest/did/visualize.py @@ -251,7 +251,7 @@ def _plot_panelview_output_plot( ax.plot( unit_data.index, unit_data.values, - color="#FFFFFF", + color="#999999", linewidth=0.5, alpha=0.5, ) From 27d2e1af24247914bc96a8103ad8fa2154feeecd Mon Sep 17 00:00:00 2001 From: Rafi Mikail Date: Mon, 9 Dec 2024 00:36:02 +0700 Subject: [PATCH 7/8] adjusting panelview plot size --- docs/difference-in-differences.qmd | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/difference-in-differences.qmd b/docs/difference-in-differences.qmd index 18bf7cbd..e9775262 100644 --- a/docs/difference-in-differences.qmd +++ b/docs/difference-in-differences.qmd @@ -61,7 +61,7 @@ pf.panelview( ylab="Cohort", xlab="Year", title="Treatment Assignment Cohorts", - figsize=(5, 5), + figsize=(6, 5), ) ``` @@ -78,7 +78,7 @@ pf.panelview( ylab="Cohort", xlab="Year", title="Treatment Assignment Cohorts", - figsize=(5, 5), + figsize=(6, 5), ) ``` @@ -98,7 +98,7 @@ pf.panelview( ylab="Unit", xlab="Year", title="Treatment Assignment (all units)", - figsize=(5, 5), + figsize=(6, 5), ) ``` From 51e111373f77c75141abfcc3f7703d36eb575bd0 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 14 Dec 2024 11:17:10 +0000 Subject: [PATCH 8/8] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- pyfixest/did/visualize.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyfixest/did/visualize.py b/pyfixest/did/visualize.py index 6bbc4a41..8371a6d3 100644 --- a/pyfixest/did/visualize.py +++ b/pyfixest/did/visualize.py @@ -213,7 +213,7 @@ def get_treatment_start(x: pd.DataFrame) -> pd.Timestamp: ) data_agg = data_agg.rename(columns={"treatment_start": unit}) - data_agg[unit] = data_agg[unit].fillna('no_treatment') + data_agg[unit] = data_agg[unit].fillna("no_treatment") data = data_agg.copy() data_pivot = data_agg.pivot(index=unit, columns=time, values=outcome)