For a visualization like this, the place to start is probably the most recent monthly data snapshot which is available on AWS/Google/Azure's open data portals: https://www.gbif.org/occurrence-snapshots
e.g. start with a DuckDB query:
SELECT scientificName, individualCount, year, month, day, decimalLatitude, decimalLongitude, issue
FROM read_parquet('s3://gbif-open-data-eu-central-1/occurrence/2026-09-01/occurrence.parquet/*')
WHERE class = 'Aves';
(The initial query will be rather slow, I'm currently working on improving this export. I suggest creating a local table and working from that. Alternatively, for a smaller export than "all birds" request a data download through the website.)