IN_PATH = r"C:\Users\Public\Documents\TRAVAIL\csg\data_out/"
import json

import pandas as pd
import seaborn as sns
file = "CalibPote-2019-assiette_csg_revenus_capital.json"
# file ='CalibPote-1000-2019-revkire.json'
with open(IN_PATH + file) as f:
    calib = json.load(f)
calib["buckets"][15]
pd.set_option("display.float_format", "{:,}".format)
df = pd.DataFrame(calib["buckets"])
df

60% des foyers n'ont pas de revenu du capital

df.query("0.70 < ratio_nb_above_seuil < 0.9")
df.iloc[99]
df["seuil_de_var_str"] = df.seuil_var_supp.astype(str)
df["pareto"] = (1 - df.ratio_nb_above_seuil) * 100
from matplotlib.ticker import PercentFormatter

sns.set(rc={"figure.figsize": (20, 8)})
ax = sns.scatterplot(data=df, x="seuil_de_var_str", y="seuil_var_supp")
_ = ax.set_xticklabels(labels=ax.get_xticklabels(), rotation=90)
_ = ax.set_title("Pareto de la variable")
ax2 = ax.twinx()
ax3 = sns.lineplot(data=df, x="seuil_de_rfr_str", y="pareto")
ax3.yaxis.set_major_formatter(PercentFormatter())
# _ = ax.set_yscale("log")
ax3 = sns.lineplot(data=df, x="seuil_var_supp", y="pareto")
sns.set(rc={"figure.figsize": (20, 8)})
ax = sns.scatterplot(data=df, x="seuil_var_supp", y="nombre_ff_tranche")
# _ = ax.set_yscale("log")
_ = ax.set_xticklabels(labels=ax.get_xticklabels(), rotation=90)
_ = ax.set_title("Nombre de foyers par tranche de RFR\nEchelle logarithmique")
sns.set(rc={"figure.figsize": (20, 8)})
ax = sns.scatterplot(data=df, x="seuil_var_supp", y="mean_tranche_var")
_ = ax.set_xticklabels(labels=ax.get_xticklabels(), rotation=90)
_ = ax.set_title("Nombre de foyers par tranche de RFR\nEchelle logarithmique")
ax = sns.lineplot(data=df, x="seuil_var_supp", y="sum_var_above_seuil")
_ = ax.set_yscale("log")
# _ = ax.set_xticklabels(labels=ax.get_xticklabels(), rotation=90)
_ = ax.set_title("Nombre de foyers par tranche de RFR\nEchelle logarithmique")