import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# Načtení datového souboru
file_path = r"C:\Škola\BAK\DATA\PROCESSED\CR_Obce_VSECHNY_OBDOBI.xlsx"

# Načtení Excel souboru
xls = pd.ExcelFile(file_path)

# Načtení relevantních listů - podzim 2020 (COVID-19) a podzim 2022 (PostCOVID-19)
df_2020 = xls.parse('CR_obce_20201006_20201110_Merge')
df_2022 = xls.parse('CR_obce_20221010_20221106_Merge')

# Výběr sloupců obsahujících data o dojíždějících
dojizdeni_sloupce_2020 = df_2020.filter(like="PracSkolDoj_d").columns
dojizdeni_sloupce_2022 = df_2022.filter(like="PracSkolDoj_d").columns

# Výpočet průměrného počtu dojíždějících za obec (průměr přes všechny dny a hodiny)
df_2020["Prumer_Dojizdejici_2020"] = df_2020[dojizdeni_sloupce_2020].mean(axis=1)
df_2022["Prumer_Dojizdejici_2022"] = df_2022[dojizdeni_sloupce_2022].mean(axis=1)

# Sloučení dat podle názvu obce
df_merged_prumer = df_2020[["NAZEV", "Prumer_Dojizdejici_2020"]].merge(
    df_2022[["NAZEV", "Prumer_Dojizdejici_2022"]],
    on="NAZEV"
)

# Výpočet rozdílu mezi obdobími
df_merged_prumer["Difference"] = df_merged_prumer["Prumer_Dojizdejici_2022"] - df_merged_prumer["Prumer_Dojizdejici_2020"]
df_merged_prumer["Difference"] = df_merged_prumer["Difference"].round().astype(int)

# Výběr 10 obcí s největším průměrným nárůstem dojíždějících
top_10_prumer_growth = df_merged_prumer.nlargest(10, "Difference")

# Vytvoření grafu
fig, ax = plt.subplots(figsize=(12, 7))
sns.barplot(x="Difference", y="NAZEV", data=top_10_prumer_growth, palette="viridis", ax=ax)

# Přidání hodnot přímo na sloupce
for index, value in enumerate(top_10_prumer_growth["Difference"]):
    ax.text(value + 1, index, f"{value}", va='center', fontsize=12)

# Nastavení popisků a nadpisu
ax.set_xlabel("Průměrný nárůst počtu dojíždějících", fontsize=14)
ax.set_ylabel("Obec", fontsize=14)
ax.set_title("OBCE S NEJVĚTŠÍM PRŮMĚRNÝM NÁRŮSTEM DOJÍŽDĚJÍCÍCH NA PODZIM 2022\n"
             "v porovnání s podzimem 2020 (COVID-19 vs PostCOVID-19)", fontsize=16, fontweight="bold")

# Přidání krátkého popisu pod graf
short_description = ("Porovnání průměrného počtu dojíždějících mezi říjnem–listopadem 2020 (období pandemie COVID-19) "
                     "a říjnem–listopadem 2022 (PostCOVID-19).\nHodnoty představují průměr za celý týden.")
fig.text(0.5, -0.1, short_description, wrap=True, horizontalalignment='center', fontsize=11)

# Přidání mřížky
ax.grid(axis="x", linestyle="--", alpha=0.7)

# Zobrazení grafu
plt.tight_layout()
plt.show()

# Skript byl optimalizován pomocí nástroje ChatGPT 4.0
