Show HN: Minimalist library to generate SVG views of scientific data

Tiny SVG chart maker wins hearts, but some want clicks

TLDR: A tiny Python tool called mini_svg makes clean, lightweight charts as simple SVG images, earning cheers for its no-fuss approach. The debate: fans love the simplicity, while critics warn that static SVGs make interactive features like hover tips and clickable data tough—raising the classic simple-vs-fancy showdown.

The minimalist library “mini_svg” swaggered onto Show HN promising simple, clean charts—box plots, scatter plots, histograms, and line charts—spit out as lightweight SVG images you can drop into a webpage. No mega-toolbox here: just a tiny command-line app that reads a JSON file or a few plain Python functions you call in your code. And the crowd? Surprisingly charmed.

Early applause came with a wink from emilbratt, who not only cheered “Looks neat!” but also slid in a link to their own Rust bar chart project, eb_bars. The vibe turned into a wholesome plug-fest and a subtle “small tools are fun again” victory lap. Fans loved the “just works” simplicity and the idea of owning every pixel in your chart without dragging a full-blown dashboard into the room.

But the honeymoon got a reality check. WaryByDesign dropped the big caveat: static SVG is gorgeous—but interactivity is hard. Think hover tips, clickable points, and data-aware popups; they warned it’s “pretty much impossible” to get those data-dependent bells and whistles right in pure SVG. Cue the age-old split: lo-fi charts that print beautifully vs web toys that dance when you hover. The thread’s unspoken meme? “Do one thing well” squared off against “make it sparkle.” Either way, mini_svg lit up a classic debate: speed and simplicity versus the need to click, hover, and zoom your way to truth.

Key Points

  • mini_svg is a minimalist Python library for generating SVG visualizations of scientific data.
  • It supports BoxPlot, Scatterplot, Histogram, and Lineplot chart types.
  • The library can be used via a command-line interface that reads parameters from a JSON file.
  • Example .sh scripts in the examples directory demonstrate CLI usage.
  • mini_svg also exposes Python functions for in-process, programmatic visualization generation.

Hottest takes

"Looks neat!" — emilbratt
"this sort of program is really fun to write" — emilbratt
"pretty much impossible to get data-dependent interactions" — WaryByDesign
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.