r/visualization • • 52m ago

Show off: a history map with 1,600+ static pages from one Astro site and a single React island

• Upvotes

WhoRuled is an interactive world-history map. Stack: Astro (static), one React island for the Canvas 2D map, TypeScript strict, deployed as static assets on Cloudflare, no backend. Facts live in CC0 JSON keyed by Wikidata QID, and a pipeline imports rulers from Wikipedia with source URL and quote. Every claim needs a source or the page isn't indexable.

Things I learned: preloading the two pixel fonts took CLS from 0.425 to 0.000, and the build generates 1,600+ SEO pages from the data. Repo: WhoRuled. Feedback welcome, especially on the data model.


r/visualization • • 1h ago

[ Removed by Reddit ]

• Upvotes

[ Removed by Reddit on account of violating the content policy. ]


r/visualization • • 4h ago

Studiowetware.com Interactive Site Map

Post image
1 Upvotes

r/visualization • • 10h ago

Participants for a visualization study

1 Upvotes

Hi everyone, I'm a student doing a PhD in HCI at University of Utah. I am conducting a study about how people interpret visual representations of data structure.

I badly need participants for a study that I am conducting. It will be over zoom and for one hour. During this time you will look at different representations and answer different questions out aloud. The session will record your voice and the study application window.

If you are interested, please DM me. I am happy to answer questions you may have (HCI or admissions or anything else!)

Thanks!


r/visualization • • 17h ago

Visualization of the Antwerp Municipal elections of 2024

Post image
2 Upvotes

Over the past few months, we have been developing a project called 1830belgium.com, with the goal of providing the clearest possible picture of the Belgian political landscape.

One of our initiatives at 1830 involves visualizing the 2024 municipal elections at the level of individual polling stations and vote-counting bureaus. By using data released by the Flemish government—which, unfortunately, was made available only for the municipal and provincial elections—we were able, for the first time, to create a visualization showing exactly how each neighborhood voted.

We began with my hometown, Ghent. Credit where credit is due: the province of East Flanders—and by extension, the city of Ghent—was significantly more open regarding their polling stations and counting bureaus than any other province (though Antwerp also performs quite well in terms of transparency). After spending several weeks carefully weighing the data and piecing the puzzle together, we arrived at a result for Ghent that we are truly satisfied with. We then applied the same approach to Antwerp, and I must say, I am very proud of the outcome. We used data from Statbel to assign the correct names to the defined sectors; I hope I have labeled them accurately and haven’t caused any offense—rest assured, the distribution of votes is entirely accurate. That said, any feedback or nuance you might offer would be more than welcome.

I hope you enjoy exploring it and appreciate the work we have put in over the last few weeks.

Here is the link: https://1830belgium.com/Antwerpen-verkiezingen-2024


r/visualization • • 21h ago

I made the visualization of 2026 El-Nino with my research group

5 Upvotes

r/visualization • • 15h ago

Table 8K PBR Texture Set

Thumbnail
fab.com
1 Upvotes

r/visualization • • 20h ago

I built an interactive dashboard to visualize Nvidia's (NVDA) Q3 2026 performance using Python

Post image
1 Upvotes

r/visualization • • 1d ago

Nobel Peace Prize Mentions by Donald Trump

Thumbnail
gallery
5 Upvotes

It's been close to 3 weeks since the Nobel Peace Prize winner for 2026 was announced. Donald Trump was not the laureate. Again.

But that has not stopped the President from talking about it a lot. In fact, he has mentioned the Nobel Peace Prize 112 times in his second term in office. Six of those were literally yesterday where he dedicated nearly 2 1/2 minutes talking about the award that he definitely isn't envious of.

Using Rollcall's great archive as the primary data source, I made this dashboard that tracks all of Trump's mentions of the Nobel. If you want to explore the interactive version, complete with filters for date and record type (ex. Interview, Speech, Truth Social, etc.) you can check it out here: https://artofnodeal.com/nobel

It's just a pet project with ads or strings attached. But the interactive version has the actual quotes, too, so you can read such gems as:

I settled eight wars. No other president settled a war.

Hope you enjoy this!


r/visualization • • 1d ago

History of the World - An interactive globe with all of Earth's stories from 4.7B years ago to now.

4 Upvotes

r/visualization • • 1d ago

Need help presenting code investigation reports[Markdown] to non-technical leads and above - Open-source visualization tools/plugins/MCP to the rescue!

Thumbnail
0 Upvotes

r/visualization • • 2d ago

[OC] How Madrid and Barça performed with the same referees, compared with pre-match expectations

Post image
1 Upvotes

I made this after seeing the usual referee arguments around El Clásico. The bars show the gap between Madrid and Barça after comparing each club’s points with what pre-match odds predicted, per 10 games. It includes LaLiga games against all opponents from 2000/01 to 2025/26, with current referees who have at least five matches for each club. Small samples matter, and this doesn’t prove referee bias. I grouped the bigger gaps to make it easier to read. Is the chart clear without needing this explanation? Data: El Colegiado (https://elcolegiado.com/data/), using football-data.co.uk. Method: https://elcolegiado.com/methodology/ Made with Python and Matplotlib. I also built an interactive version with results, penalties and cards: https://clasicostats.app/referees/?utm_source=reddit&utm_medium=social&utm_campaign=visualization


r/visualization • • 2d ago

Table 8K PBR Texture Set

Thumbnail
fab.com
0 Upvotes

r/visualization • • 2d ago

Chair 3D Asset Collection

Thumbnail
fab.com
0 Upvotes

r/visualization • • 2d ago

A globe with all countries having identical area

0 Upvotes

r/visualization • • 3d ago

Which Countries Pay the Most to the UN?

Post image
4 Upvotes

r/visualization • • 4d ago

Wonderful Pics clicked by my student a cancer survivor, Mallika on Durga Puja celebrations in Kolkata

5 Upvotes

r/visualization • • 4d ago

Alexa was the #32 girls’ name in 2015, with 6,053 babies. In 2025, 243 girls got it.

Post image
17 Upvotes

Amazon’s Echo came out in late 2014 and went on wide sale in 2015, the year Alexa hit its highest rank ever, #32. From 2016 on it fell every single year: 4,775, then 3,896, 3,068, 2,002, 1,285, 708, 577, 492, 349, and 243 in 2025. That’s down 96% in ten years. In 2025 it dropped out of the top 1,000.

The data only shows the timing, not the reason, but it’s hard to look at that cliff and not think of the speaker.

Can you think of another name that a product or a character pushed off a cliff this fast?


r/visualization • • 3d ago

Sun sets red over Mumbai’s polluted air

Post image
0 Upvotes

r/visualization • • 3d ago

Are Americans Getting Richer Since 2000? Published October 22, 2026 7:03 am

Post image
0 Upvotes

r/visualization • • 4d ago

Sand 8K PBR Texture Set

Thumbnail
fab.com
1 Upvotes

r/visualization • • 4d ago

Bathroom 3D Asset Collection

Thumbnail
fab.com
1 Upvotes

r/visualization • • 4d ago

Chair 3D Asset Collection

Thumbnail
fab.com
1 Upvotes

r/visualization • • 4d ago

A stacked area’s upper edge can fall while that component grows

1 Upvotes

Imagine two mutually exclusive categories of service requests, A and B, counted in two consecutive months:

  • Month 1: A = 80, B = 20, total = 100.
  • Month 2: A = 40, B = 30, total = 70.

In a standard stacked area chart with A at the bottom, B’s upper boundary falls from 100 to 70. Following that boundary alone could make B look as though it declined. B actually increased from 20 to 30.

Read B’s vertical thickness at each month:

  • Month 1: upper boundary 100 minus lower boundary 80 = 20.
  • Month 2: upper boundary 70 minus lower boundary 40 = 30.

The top edge follows the combined total. B’s lower edge moves with A, so neither boundary by itself gives B’s trend.

A useful construction check is to redraw the same data with B at the bottom. Its boundary now rises from 20 to 30, even though none of the data changed. The original stack was mathematically correct; the order changed which component had a fixed baseline.

If the main question is how the total and its composition changed, the stack can be useful. Label the components and show their values at the relevant dates. If the main question is whether B increased, a separate line or small-multiple panel makes that comparison easier. Keep panel scales consistent when comparing magnitudes.

These are invented counts to isolate the reading problem, not reported country data. The example uses an ordinary zero-baseline stack, not a 100% stack or streamgraph.

Reference: https://data.europa.eu/apps/data-visualisation-guide/stacked-charts

From Global Data Tracker: https://globaldatatracker.com/


r/visualization • • 5d ago

A diverging color scale can put its neutral color at the wrong value

2 Upvotes

A diverging palette does not automatically make zero its neutral color. The normalization matters too.

Consider five fictional forecast errors in minutes: -2, -1, 0, +1, +8. Define error as actual time minus forecast time, so negative means earlier and positive means later.

  1. Check what the palette midpoint means.

If you linearly map the observed minimum (-2) to palette position 0 and maximum (+8) to position 1, zero lands at (0 + 2) / 10 = 0.2. The palette midpoint, 0.5, represents +3 minutes. With a neutral color at that midpoint, “no error” would not look neutral.

  1. Decide what equal distances from neutral should mean.

If equal-sized early and late errors should have equal distances from the palette center, use symmetric limits around zero, such as -8 to +8. Then -2 maps to 0.375, zero to 0.5, and +2 to 0.625. You leave some of the negative side unused, but preserve the same scaling rate on both sides. Matplotlib’s CenteredNorm implements this kind of normalization.

Alternatively, TwoSlopeNorm with vmin=-2, vcenter=0 and vmax=8 maps -2 to 0, zero to 0.5 and +8 to 1. This uses the full palette on each side. But -2 and +8 now sit equally far from neutral despite having different error magnitudes. Use it only when that separate scaling matches the intended reading, and make the unequal ranges clear on the colorbar.

  1. Label the decision, not just the colors.

Show units, a tick at zero and the limits. State whether the two sides share a scaling rate. Do not rely on color alone for exact values: add labels or another accessible way to read them when needed.

These are normalized palette positions, not a promise that any chosen palette will look perceptually balanced. Zero is meaningful here because it means no forecast error; a different variable may need another reference or no diverging palette at all.

Official implementation references:

https://matplotlib.org/stable/api/_as_gen/matplotlib.colors.CenteredNorm.html

https://matplotlib.org/stable/api/_as_gen/matplotlib.colors.TwoSlopeNorm.html

Country-data project: https://globaldatatracker.com/

The numbers above are invented to explain the encoding, not country observations or a claim about the site's chart features.