HNHacker News
TopNewBestAskShowJobs

jmmease

61 karma · joined June 27, 2018

https://github.com/jmmease https://www.linkedin.com/in/jon-mease/
submissionscomments
jmmease··on Vega-Altair: Declarative Visualization in Python
Box zoom would need to be added to Vega-Lite first, and there has been some discussion around it in https://github.com/vega/vega-lite/issues/4742. Bottom line is that there's nothing blocking its implementation, someone just needs to do the work in Vega-Lite. And once released in Vega-Lite, Altair would pick it up automatically with how we generate the Altair API from the Vega-Lite schema.
jmmease··on Vega-Altair: Declarative Visualization in Python
(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.

jmmease··on Vega-Altair: Declarative Visualization in Python
(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!).

jmmease··on Vega-Altair: Declarative Visualization in Python
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)

jmmease··on VegaFusion: Server-side acceleration for Vega visualizations with Rust and WASM
VegaFusion author here. Happy to answer questions if anyone is interested in learning more!
jmmease··on Plotly.py: Static Image Export and a New Lead Maintainer
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.

jmmease··on What could you write down about a juggling pattern? (1993)
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 :-)

jmmease··on Introducing plotly.py 3.0.0
Do you have ipywidgets >= 7.2 installed (See install instruction at https://github.com/plotly/plotly.py)?

ipywidgets is an optional dependency and FigureWidget won't be available without it.

jmmease··on Introducing plotly.py 3.0.0
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...
jmmease··on Introducing plotly.py 3.0.0
Yes! You use the trace.on_selection method to register a callback function. Here's an example: https://github.com/jonmmease/plotly_ipywidget_notebooks/blob...
jmmease··on Introducing plotly.py 3.0.0
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.

jmmease··on Introducing plotly.py 3.0.0
Cool! Here are a few ways to get the interactive visualizations elsewhere (outside of the notebook).

1) You can save them to a standalone, self-contained, html file: See https://community.plot.ly/t/proper-way-to-save-a-plot-to-htm...

2) You can save them to an html <div> element and embed them in another web page: See https://stackoverflow.com/a/38032952/4551895

3) You can upload them to plot.ly and share the link

jmmease··on Introducing plotly.py 3.0.0
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?

jmmease··on Introducing plotly.py 3.0.0
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.
jmmease··on Introducing plotly.py 3.0.0
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!

jmmease··on Introducing plotly.py 3.0.0
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.
jmmease··on Introducing plotly.py 3.0.0
Hi HN,

This is Jon from the release announcement. AMA!