HN user

jmmease

61 karma

https://github.com/jmmease https://www.linkedin.com/in/jon-mease/

Posts5
Comments17
View on HN

(a current Altair maintainer and a former plotly.py maintainer here)

Plotly is definitely a great option as well, and it can do a bunch of things Vega-Altair is not designed for. One comment, just in case you weren't aware, is that there is a relatively new library that provides good integration between Altair and Dash: https://github.com/altair-viz/dash-vega-components. It even makes it possible to access Altair selection states in Dash callbacks so that you can have other dashboard components respond to selections.

(Disclaimer: I'm a Vega-Altair maintainer)

Thanks for the feedback and for the kind words! All of these drawbacks are fair, just a couple of comments.

There is an experimental package called altair_tiles that makes is possible to add OSM-style maptile backgrounds to Altair charts. See https://github.com/altair-viz/altair_tiles. This is mostly for static charts at the moment, as it doesn't integrate well with pan/zoom yet.

As you mentioned, VegaFusion is able to remove unused columns in most cases. (And if it doesn't for a particular case, please open an issue!).

Image export before Altair 5 was a bit complicated because it required either selenium plus a system web browser, or a node.js installation. In Altair 5, we switched to using vl-convert for image export, which is just a regular Python wheel with no external dependencies. So now, `chart.save("file.png")` should be just as easy to use as matplotlib's savefig!

(Disclaimer: I'm a Vega-Altair maintainer and the author of vl-convert)

Hi All, let me know if you have any questions about the new release (or anything else).

The tech behind the new static image export support is pretty interesting. It's the only static image export approach I'm aware of, for a Python+JavaScript visualization library, that's not selenium-based.

I spent hours a day juggling for ~4 years in my mid teens (in my 30s now) and got up to juggling 8 balls.

I find numbers juggling (say 5 or more) to be almost therapeutic. It requires a reasonable amount of physical exertion, and it just pulls you into a flow state. All of your mental and physical focus is concentrated on maintaining this ephemeral pattern, and there's no room for anything else... until the pattern falls apart :-)

Rock solid export of high-quality static images is really important to me too. Fortunately the hard part is already done (in orca). Integrating orca into plotly.py is the very next feature I'm going to start working on after I get through SciPy next week, so hopefully it won't be too much longer...

Actually, you don't need to sink any investment into a commercial ecosystem here!

plotly.py and the plotly.js rendering library are both MIT licensed, developed in the open on GitHub, and totally self-contained.

Everything in the technology stack used in the announcement post is free, open source, self-contained, usable offline, and doesn't require an account. The plot.ly cloud integration is totally optional.

Thanks!

Yeah, I should have clarified that I meant in 2D. ipyvolume is super impressive, and I didn't know you were working on bringing some of that webgl goodness to bqplot. Very cool!

Does ipyvolume have support some kind of points selection in 3D? Or is the idea that you'd perform selections using 2D projections in bqplot?

BTW, I got a GitHub notification of a comment that you were having trouble installing it. But I can't find the comment in GitHub itself.

Sure thing! But full disclosure, I wasn't actually involved in any of the versions of plotly.py before 3.0.0 :-)

Hopefully 3.0.0 will be even more fun!

I haven't looked into this specifically. Using the FigureWidget approach in 3.0.0 doesn't actually require the current @jupyterlab/plotly-extension. It's all contained in the new plotlywidget extension.