import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from pivot_chart import pivot_chart
sns.set_theme(style="whitegrid")
df_input = pd.read_excel("dane_ankieta.xlsx", header=1)
df_input["licznik"] = 1
df_input["Grupa"] = df_input["czy_instruktor"].replace({"NIE": "Wędrownicy", "TAK": "Instruktorzy"})
# df_input.info()
df_test = df_input[["choragiew", "Grupa"]].value_counts(sort="choragiew").rename("Liczba Odpowiedzi")
df_top5 = pd.pivot_table(pd.DataFrame(df_test), index="choragiew", columns="Grupa", fill_value=0).droplevel(level=0, axis=1).sort_values("Wędrownicy", ascending=False).eval("Suma=`Wędrownicy`+`Instruktorzy`").head(5)
choragiew_top5 = df_top5.index.to_list()
df_input["top_choragiew"] = df_input.choragiew.map(lambda x: x if x in choragiew_top5 else "POZOSTAŁE CHORĄGWIE")
choragiew_top5_order = choragiew_top5 + ["POZOSTAŁE CHORĄGWIE"]
naramiennik_wiek_order = ["14 lat", "15 lat", "16 lat", "17 lat", "18 lat", "19+"]
wstapienie_wiek_order = ['<14 lat', "14 lat", "15 lat", "16 lat", "17 lat", "18 lat", "19+ lat"]
Analiza zdobytych naramienników¶
Poniżej zaprezentowano wykres wieku zdobycia naramiennika wędrowniczego przez wędrowników i instruktorów. Generalnie większość wędrowników zdobywa stopnie w wieku 15 i 16 lat, choć istnieje znacząca grupa zdobywających w wieku 17 lat i więcej. Wśród instruktor z wiadomych względów dominuje odpowiedź 19+, z czego można wysnuć hipotezę, że spora większość instruktorów pierwszy styk z wędrownictwem ma już na etapie bycia instruktorem.
g = sns.catplot(
data=df_input.dropna(subset=["naramiennik_wiek"], axis=0),
x="naramiennik_wiek",
hue="Grupa",
col="Grupa",
order=naramiennik_wiek_order,
kind="count",
stat="percent",
# palette="pastel6",
palette=sns.color_palette("blend:#FFC30F,#165110", 2),
legend=False,
)
g.axes[0, 0].set(title="Instruktorzy", xlabel="wiek", ylabel="procent")
g.axes[0, 1].set(title="Wędrownicy", xlabel="wiek")
plt.suptitle("W jakim wieku zdobyłeś naramiennik?", y=1.05)
plt.show()
plt.close()
W przekroju sześciu chorągwi jedynie z trzech można wysnuć jakieś konkretne wnioski ze względu na odpowiednią liczbę odpowiedzi (wędrownicy ze zdobytym naramiennikiem). Na Mazowszu spora większość naramienników jest zdobywana w wieku 15 i 16 lat. W Wielkopolsce jest bardzo podobnie, choć od Mazowsza odróżnia ją brak odpowiedzi dla 17 i 18 roku życia. Natomiast w Małopolsce dominującą odpowiedzią było 17 lat.
sns.set_color_codes("pastel")
g = sns.catplot(
data=df_input.query("czy_instruktor == 'NIE'").dropna(subset=["naramiennik_wiek"], axis=0),
x="naramiennik_wiek",
# hue="czy_instruktor",
col="top_choragiew",
order=naramiennik_wiek_order,
col_order=choragiew_top5_order,
col_wrap=3,
kind="count",
sharex="row",
# stat="percent",
# palette="pastel6",
legend=False,
color="#165110",
)
# g.axes[0, 0].set(title="Instruktorzy", xlabel="wiek", ylabel="procent")
# g.axes[0, 1].set(title="Wędrownicy", xlabel="wiek")
g.set_titles(col_template="{col_name}")
g.set(xlabel="", ylabel="liczba odpowiedzi")
plt.suptitle("W jakim wieku zdobyłeś naramiennik? - wędrownicy", y=1.05)
plt.show()
plt.close()
Większość naramienników zdobywana jest w drużynie, choć istnieją przypadki zdobywania ich po za drużyną wędrowników – w przypadku instruktorów blisko 1/3 naramienników tak jest zdobywana.
g = sns.catplot(
data=df_input.query("czy_naramiennik == 'TAK'"),
x="czy_naramiennik_w_druzynie",
hue="Grupa",
col="Grupa",
# row="czy_naramiennik_w_druzynie",
order=["TAK", "NIE"],
kind="count",
stat="count",
# palette="pastel6",
palette=sns.color_palette("blend:#FFC30F,#165110", 2),
legend=False,
)
g.axes[0, 0].set(title="Instruktorzy", xlabel="", ylabel="Liczba odpowiedzi")
g.axes[0, 1].set(title="Wędrownicy", xlabel="")
plt.suptitle("Czy zdobyłeś naramiennik w drużynie wędrowników?", y=1.05)
plt.show()
plt.close()
wstapienie_wiek_order = ['<14 lat', "14 lat", "15 lat", "16 lat", "17 lat", "18 lat", "19+ lat"]
Przy okazji pytania o wiek zdobycia naramiennika, respondenci odpowiadali na pytanie o wiek wstąpienia do drużyny/patrolu wędrowniczego.
W przypadku czynnych wędrowników wiek wstąpienia dla większości wynosił 15 i 16 lat. Należy odnotować, że grupa 14 i mniej 14 lat jest znacząca i to zjawisko zaczyna pojawiać się. Są też wędrownicy wstępujący do drużyn po 18 roku życia.
Instruktorzy w dużej części wstępują do drużyn wędrowniczych już po 18 roku życia (już jako instruktorzy). Choć istnieje spora grupa, która ma za sobą epizod w drużynie wędrowniczej (wiek wstąpienia 18 i mniej).
g = sns.catplot(
data=df_input.query("wstapienie_wiek != 'Nie wstąpiłem nigdy do drużyny/patrolu'"),
x="wstapienie_wiek",
hue="czy_instruktor",
col="czy_instruktor",
order=wstapienie_wiek_order,
kind="count",
stat="percent",
# palette="pastel6",
palette=sns.color_palette("blend:#FFC30F,#165110", 2),
legend=False,
)
g.axes[0, 0].set(title="Instruktorzy", xlabel="wiek", ylabel="procent")
g.axes[0, 1].set(title="Wędrownicy", xlabel="wiek")
plt.suptitle("W jakim wieku wstąpiłeś do drużyny/patrolu wędrowników?", y=1.05)
plt.show()
plt.close()
Analizując wiek wstąpienia do drużyny/patrolu wędrowniczego względem chorągwi można dostrzeć, że wiek wstąpienia 15 i 16 generalnie dominuje dla wszystkich sześciu przedstawionych chorągwi. Tak samo wszędzie pojawia się wiek 14 lat jako wiek wstąpienia. Jedynie dla Małopolskiej Chorągwi Harcerzy można zaobserwować przesunięcie wieku wstąpienia bardziej w stronę 17 roku życia.
sns.set_color_codes("pastel")
g = sns.catplot(
data=df_input.query("czy_instruktor == 'NIE'"),
x="wstapienie_wiek",
# hue="czy_instruktor",
col="top_choragiew",
order=wstapienie_wiek_order,
col_order=choragiew_top5_order,
col_wrap=3,
kind="count",
sharex="row",
# stat="percent",
# palette="pastel6",
legend=False,
color="#165110",
)
# g.axes[0, 0].set(title="Instruktorzy", xlabel="wiek", ylabel="procent")
# g.axes[0, 1].set(title="Wędrownicy", xlabel="wiek")
g.set_titles(col_template="{col_name}")
g.set(xlabel="", ylabel="liczba odpowiedzi")
plt.suptitle("W jakim wieku wstąpiłeś do drużyny/patrolu wędrowników? - wędrownicy", y=1.05)
plt.show()
plt.close()
Zestawiając wiek wstąpienia drużyny z wiekiem zdobycia naramiennika, można wysnuć wniosek, że zdobycie naramiennika następuje do około roku po wstąpieniu do drużyny wędrowniczej. Zdarzają się oczywiście przypadki zdobycia tego naramiennika później.
g = sns.catplot(
data=df_input.query("wstapienie_wiek != 'Nie wstąpiłem nigdy do drużyny/patrolu'").query("czy_naramiennik == 'TAK'"),
x="naramiennik_wiek",
hue="czy_instruktor",
col="wstapienie_wiek",
col_wrap=2,
col_order=wstapienie_wiek_order,
order=naramiennik_wiek_order,
kind="count",
stat="percent",
# palette="pastel6",
palette=sns.color_palette("blend:#FFC30F,#165110", 2),
sharex="row",
legend_out=True,
)
# g.axes[0, 0].set(title="Instruktorzy", xlabel="wiek", ylabel="procent")
# g.axes[0, 1].set(title="Wędrownicy", xlabel="wiek")
g.set_ylabels("procent")
g.set_xlabels("wiek zdobycia naramiennika")
g.set_titles(col_template="Wstąpienie w wieku {col_name}")
plt.suptitle("Wiek zdobycia naramiennika względem wieku wstąpienia do drużyny", y=1.01)
g._legend.set_title("")
new_labels = ['Instruktorzy', 'Wędrownicy']
for t, l in zip(g._legend.texts, new_labels):
t.set_text(l)
plt.show()
plt.close()