this post was submitted on 29 Jun 2023
19 points (100.0% liked)

Programming

19139 readers
110 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 2 years ago
MODERATORS
 

So I'm considering going deep into a data viz library, and I'm wondering what you people think. I'm not asking reddit because I know for a fact that all the hardcore people that know their stuff are on lemmy.

Here are my requirements:

  • API must at least pretend to be reasonably designed.
    • I know that viz libraries are complex. But I want something with carefully chosen primitives that scale reasonably well from "data goes in, chart goes out" to nit-picky adjustments.
  • Defaults must not be ugly.
    • Or at least there should be an easy way to bypass the default ugliness. I know that design is subjective, but how am I supposed to trust a library that operates on the visual space and yet decides that a bad default is ok?
    • Here looks like ggplot has the upper hand. But there is a stylesheet that makes matplotlib look like ggplot, so maybe that's not a big problem.
  • Must have a future.
    • The github contribution chart on matplotlib just keep going up, it's insane. While ggplot not so much. But maybe it's hard to compete with the python hype machine, and that is that.
  • Bonus points if interactive and renders to web too.

Non-requirements:

  • Easy learning curve.
    • I am a hardcore programm0r. I like it rough, as long as it's worth the effort.
  • Heavy math stuff.
    • I'm not designing rockets or wind turbines. I just want a way to visually represent data as lines, charts, pies, or maps, or maybe violins if I'm feeling fancy.

Thanks

you are viewing a single comment's thread
view the rest of the comments
[โ€“] acow@programming.dev 3 points 2 years ago (2 children)

I went with ggplot2 some time ago, despite not using or knowing R at all. What pushed me in that direction was that I was using other plotting libraries (I don't recall which at the time), and there was some aspect of spacing between elements or some such that was making a particular plot look ever so slightly ugly in my eyes... and I couldn't fix it!

In my frustration, I consciously decided to set aside my version of your "reasonably designed" requirement (I find R consistently frustrating in this regard, though I know some people do all their programming in it and I salute them). I gave ggplot2 a try with a cargo culting approach: search for how to make the kind of plot you want to make, and just tweak that template. I was blown away. I could find recipes for everything I wanted to do, the results were instantly more attractive than what I had before, and I could tweak everything.

matplotlib is absolutely a reasonable option, but even years later I still have R environments attached to most projects specifically for data visualization, and still produce plots that are delightfully aesthetic. So here's one voice to say that ggplot2 has real merit, especially if your aim is specifically to produce visualizations rather than explore a programming ecosystem.

Interesting. This matches my one experience using ggplot2, in which I found it easy to modify existing code. Looks like the library works very well with the "cargo cult" approach

load more comments (1 replies)