(pl)(census) final touches

This commit is contained in:
Andrea Vos 2025-06-29 12:18:14 +02:00
parent 9bb634b2ac
commit 002ca7c831
6 changed files with 106 additions and 3 deletions

View File

@ -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}<br>%{y:.2f}%', # + '<extra></extra>',
)
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=["<b>" + row["Form"] + "</b>"],
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),

View File

@ -1,6 +1,6 @@
# Niebinarny Spis Powszechny 2025 skrócony raport
<small>2025-06-15 | [@andrea](/@andrea), [@szymon](/@szymon), [@tymk](/@tymk)</small>
<small>2025-06-29 | [@andrea](/@andrea), [@szymon](/@szymon), [@tymk](/@tymk)</small>
<img src="/img/pl/census/spis-2025.png" class="hero d-none" alt="">
@ -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:

View File

@ -1,6 +1,6 @@
# Niebinarny Spis Powszechny 2025 raport
<small>2025-06-15 | [@andrea](/@andrea), [@szymon](/@szymon), [@tymk](/@tymk)</small>
<small>2025-06-29 | [@andrea](/@andrea), [@szymon](/@szymon), [@tymk](/@tymk)</small>
<img src="/img/pl/census/spis-2025.png" class="hero d-none" alt="">
@ -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.

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

After

Width:  |  Height:  |  Size: 2.1 MiB

View File

@ -135,6 +135,29 @@ W tym roku rozszerzyłośmy ankietę o pytania o używane imiona i ich odmianę.
<p style="color: #999; font-size: 10px;">Ta wiadomość wysyłana jest do osób, które zapisały się na przypominajkę. Jeśli chcesz z niej zrezygnować, <a href="https://zaimki.pl/api/subscription/unsubscribe?email={{emailEncoded}}&type=census">kliknij tutaj</a>.</p>
`,
},
{
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: `
<p>Już po raz piąty przeprowadziłośmy Niebinarny Spis Powszechny największe badanie języka, jakim posługują się polskojęzyczne osoby niebinarne.</p>
<p>Report dostępny jest pod adresem <a href="https://zaimki.pl/blog/spis-2025" target="_blank" rel="noopener">zaimki.pl/blog/spis-2025</a>, a wersja skrócona pod <a href="https://zaimki.pl/blog/spis-2024-skrocony" target="_blank" rel="noopener">zaimki.pl/blog/spis-2024-skrocony</a> serdecznie zapraszamy do lektury 😉</p>
<p style="text-align: center; padding-top: 16px; padding-bottom: 16px;">
<a href="https://zaimki.pl/blog/spis-2025" target="_blank" rel="noopener" style="background-color: #C71585; color: #fff; padding: 8px 16px; border: none; border-radius: 6px;text-decoration: none">
zaimki.pl/blog/spis-2024
</a>
</p>
<p style="color: #999; font-size: 10px;">Ta wiadomość wysyłana jest do osób, które zapisały się na przypominajkę. Jeśli chcesz z niej zrezygnować, <a href="https://zaimki.pl/api/subscription/unsubscribe?email={{emailEncoded}}&type=census">kliknij tutaj</a>.</p>
`,
},
];
async function calculate() {