diff --git a/census/analyse.py b/census/analyse.py index 6b690f809..a6d57bfd3 100644 --- a/census/analyse.py +++ b/census/analyse.py @@ -3,6 +3,7 @@ import pandas as pd from pathlib import Path import plotly.express as px import plotly.io as pio +import plotly.graph_objects as go import os from datetime import datetime import json @@ -342,6 +343,58 @@ def build_ages_histogram(df: pd.DataFrame) -> pd.Series: }) +def generate_yearly_comparison(data: dict, show: bool = False): + df = pd.DataFrame(data) + + # Reshape to long format + df_long = df.melt(id_vars="Form", var_name="Year", value_name="Percentage") + + # Plot + fig = px.line(df_long, + x="Year", y="Percentage", color="Form", + title="Trendy na przestrzeni lat", + template="plotly_white", + markers=True, + #color_discrete_sequence=colours_multi, + ) + + fig.update_traces(line=dict(width=4), marker=dict(size=8)) + + for trace in fig.select_traces(): + trace.update( + hovertemplate='%{x}
%{y:.2f}%', # + '', + ) + + df_last_year = df_long[df_long["Year"] == df_long["Year"].max()] + for _, row in df_last_year.iterrows(): + if row["Form"] == "Neutratywy": + position = "bottom left" + else: + position = "top left" + + fig.add_trace(go.Scatter( + x=[row["Year"]], + y=[row["Percentage"]], + text=["" + row["Form"] + ""], + mode="text", + textposition=position, + showlegend=False, + hoverinfo="skip", + textfont=dict(family=fontFamily, size=16), + )) + + fig.update_layout( + xaxis=None, + yaxis_title="Procent (%)", + showlegend=False, + #legend=dict(orientation='h', yanchor='bottom', y=1.02, xanchor='right', x=1, title=''), + font=dict(family=fontFamily, size=14), + ) + + file_path = outputDir / 'year_by_year.html' + pio.write_html(fig, file=file_path, auto_open=show or openFigs, include_plotlyjs='cdn') + + if __name__ == '__main__': parser = ArgumentParser() parser.add_argument('-s', '--show', dest='show', default=False, nargs='?', const=True) @@ -358,6 +411,22 @@ if __name__ == '__main__': diffs = [2021, 2022, 2023, 2024] + generate_yearly_comparison({ + "Form": [ + "Rodzaj neutralny", + "Rodzaj postpłciowy", + "Wyłącznie formy binarne", + "Wyłącznie formy niebinarne", + "Neutratywy", + "Osobatywy" + ], + "2021": [25.4, 8, 53.6, 8.4, 12, 66.7], + "2022": [43.1, 11.8, 15.7, 15.5, 14.3, 65.4], + "2023": [48, 9.3, 15.6, 18.2, 11.7, 67.5], + "2024": [45.9, 6.2, 18, 19.4, 12.3, 68], + "2025": [52.3, 8.6, 15.5, 18.9, 15.4, 74.4] + }) + stats = { 'general': analyse('general', df, df, args.echo, diffs), 'location_poland': analyse('location_poland', df[df['4_'] == 'w Polsce'], df, args.echo, diffs), diff --git a/locale/pl/blog/spis-2025-skrocony.md b/locale/pl/blog/spis-2025-skrocony.md index e00052d6c..bd68c7182 100644 --- a/locale/pl/blog/spis-2025-skrocony.md +++ b/locale/pl/blog/spis-2025-skrocony.md @@ -1,6 +1,6 @@ # Niebinarny Spis Powszechny 2025 – skrócony raport -2025-06-15 | [@andrea](/@andrea), [@szymon](/@szymon), [@tymk](/@tymk) +2025-06-29 | [@andrea](/@andrea), [@szymon](/@szymon), [@tymk](/@tymk) @@ -598,6 +598,8 @@ Wyłącznie formy niebinarne | 8.4% [Neutratywy](/neutratywy) | {json=spis-2021/general/stats.json=nouns.neutratywy}% | {json=spis-2022/general/stats.json=nouns.neutratywy}% | {json=spis-2023/general/stats.json=nouns.neutratywy}% | {json=spis-2024/general/stats.json=nouns.neutratywy}% | {json=spis-2025/general/stats.json=nouns.neutratywy}% | [Osobatywy](/osobatywy) | {json=spis-2021/general/stats.json=nouns.osobatywy}% | {json=spis-2022/general/stats.json=nouns.osobatywy}% | {json=spis-2023/general/stats.json=nouns.osobatywy}% | {json=spis-2024/general/stats.json=nouns.osobatywy}% | {json=spis-2025/general/stats.json=nouns.osobatywy}% | +{graph=/docs/pl/spis-2025/year_by_year} + ## Ogólne wnioski Wyniki naszego badania pokazują przede wszystkim **ogromną różnorodność** społeczności osób niebinarnych: diff --git a/locale/pl/blog/spis-2025.md b/locale/pl/blog/spis-2025.md index 995d162ea..4078cb783 100644 --- a/locale/pl/blog/spis-2025.md +++ b/locale/pl/blog/spis-2025.md @@ -1,6 +1,6 @@ # Niebinarny Spis Powszechny 2025 – raport -2025-06-15 | [@andrea](/@andrea), [@szymon](/@szymon), [@tymk](/@tymk) +2025-06-29 | [@andrea](/@andrea), [@szymon](/@szymon), [@tymk](/@tymk) @@ -2282,7 +2282,7 @@ przejście części lub wszystkich pożądanych zabiegów, jak i zamiar przejśc ## Porównanie z poprzednimi edycjami -Forma | 2021 | 2022 | 2023 | 2024 | 2024 | +Forma | 2021 | 2022 | 2023 | 2024 | 2025 | -----------------------------|-----------------------------------------------------------------------|--------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------| [Rodzaj neutralny](/ono) | {json=spis-2021/general/stats.json=pronounGroups.rodzaj neutralny}% | {json=spis-2022/general/stats.json=pronounGroups.rodzaj neutralny}% | {json=spis-2023/general/stats.json=pronounGroups.rodzaj neutralny}% | {json=spis-2024/general/stats.json=pronounGroups.rodzaj neutralny}% | {json=spis-2025/general/stats.json=pronounGroups.rodzaj neutralny}% | [Rodzaj postpłciowy](/onu) | {json=spis-2021/general/stats.json=pronounGroups.rodzaj postpłciowy}% | {json=spis-2022/general/stats.json=pronounGroups.rodzaj postpłciowy}% | {json=spis-2023/general/stats.json=pronounGroups.rodzaj postpłciowy}% | {json=spis-2024/general/stats.json=pronounGroups.rodzaj postpłciowy}% | {json=spis-2025/general/stats.json=pronounGroups.rodzaj postpłciowy}% | @@ -2291,6 +2291,8 @@ Wyłącznie formy niebinarne | 8.4% [Neutratywy](/neutratywy) | {json=spis-2021/general/stats.json=nouns.neutratywy}% | {json=spis-2022/general/stats.json=nouns.neutratywy}% | {json=spis-2023/general/stats.json=nouns.neutratywy}% | {json=spis-2024/general/stats.json=nouns.neutratywy}% | {json=spis-2025/general/stats.json=nouns.neutratywy}% | [Osobatywy](/osobatywy) | {json=spis-2021/general/stats.json=nouns.osobatywy}% | {json=spis-2022/general/stats.json=nouns.osobatywy}% | {json=spis-2023/general/stats.json=nouns.osobatywy}% | {json=spis-2024/general/stats.json=nouns.osobatywy}% | {json=spis-2025/general/stats.json=nouns.osobatywy}% | +{graph=/docs/pl/spis-2025/year_by_year} + Pracujemy także nad raportem dokładniej porównującym wyniki *Spisów* na przestrzeni lat. By uczynić nasze dane bardziej dostępnymi dla międzynarodowej społeczności queerowej i akademickiej, będzie on dostępny po angielsku. diff --git a/locale/pl/docs/spis-2025/year_by_year.html b/locale/pl/docs/spis-2025/year_by_year.html new file mode 100644 index 000000000..8718c46dc --- /dev/null +++ b/locale/pl/docs/spis-2025/year_by_year.html @@ -0,0 +1,7 @@ + + + +
+
+ + \ No newline at end of file diff --git a/locale/pl/img/census/spis-2025.png b/locale/pl/img/census/spis-2025.png index d41c5dd6e..1b44d273d 100644 Binary files a/locale/pl/img/census/spis-2025.png and b/locale/pl/img/census/spis-2025.png differ diff --git a/server/subscriptions.js b/server/subscriptions.js index d241e8703..94768132c 100644 --- a/server/subscriptions.js +++ b/server/subscriptions.js @@ -135,6 +135,29 @@ W tym roku rozszerzyłośmy ankietę o pytania o używane imiona i ich odmianę.

Ta wiadomość wysyłana jest do osób, które zapisały się na przypominajkę. Jeśli chcesz z niej zrezygnować, kliknij tutaj.

`, }, + { + name: 'spis-2025-raport', + sendAt: new Date(2025, 5, 29, 0, 0, 0), + type: 'census', + locales: ['pl'], + subject: 'Przedstawiamy raport z piątej edycji Niebinarnego Spisu Powszechnego!', + text: `Już po raz piąty przeprowadziłośmy Niebinarny Spis Powszechny – największe badanie języka, jakim posługują się polskojęzyczne osoby niebinarne. + +Report dostępny jest pod adresem https://zaimki.pl/blog/spis-2025, a wersja skrócona pod https://zaimki.pl/blog/spis-2025-skrocony – serdecznie zapraszamy do lektury 😉 + +(Ta wiadomość wysyłana jest do osób, które zapisały się na przypominajkę. Jeśli chcesz z niej zrezygnować, wejdź na https://zaimki.pl/api/subscription/unsubscribe?email={{emailEncoded}}&type=census) + `, + html: ` +

Już po raz piąty przeprowadziłośmy Niebinarny Spis Powszechny – największe badanie języka, jakim posługują się polskojęzyczne osoby niebinarne.

+

Report dostępny jest pod adresem zaimki.pl/blog/spis-2025, a wersja skrócona pod zaimki.pl/blog/spis-2024-skrocony – serdecznie zapraszamy do lektury 😉

+

+ + zaimki.pl/blog/spis-2024 + +

+

Ta wiadomość wysyłana jest do osób, które zapisały się na przypominajkę. Jeśli chcesz z niej zrezygnować, kliknij tutaj.

+ `, + }, ]; async function calculate() {