view a_brief_plotting_survey.txt @ 175:c4a5adc2d8f2

more sample data...cant get enough
author Jeff Hammel <k0scist@gmail.com>
date Thu, 10 Mar 2016 12:32:40 -0800
parents 31a004976411
children
line wrap: on
line source

Right now, https://github.com/CognitiveNetworks/validation/tree/master/stats , the validation analysis gum+chicken wire framework (working now on replacing the gum and chicken wire with wood + iron), uses matplotlib: http://matplotlib.org/ . It's not bad -- 10 years ago I would have said it was quite amazing -- but its a bit cumbersome.  I don't have time to replace it anytime soon (I don't think, unless it really hits me in the face), but did look into a few solutions yesterday.

My criteria have mostly been around generating standalone plots for quick analysis.  Interactivity would be nice.  HTML would be nice.  But a web service is/was an afterthought, though important, so none of these are necessarily for a plot server to replace stackdriver (though they might be).  They were just quick + nice solutions for my rather narrow requirement that *might* scale to a plot service.

I've really liked d3, though my experience is limited.  It is also javascript, so as much as I'd love to start rewriting everything in node, I'm not planning on doing that today.  So I looked for python to d3 bridges.  http://mpld3.github.io/ looks the most promising -- it is a backend to matplotlib, which already is heavily developed.  It also works with ipython, which I sometimes find useful but mostly don't (though I like the concept).

Second place, and worth looking at (although I haven't much): https://github.com/areski/python-nvd3 . It uses the nvd3 front end to d3, which I don't know how I feel about yet: http://nvd3.org/index.html

A library that doesn't use d3 but is pretty slick: http://bokeh.pydata.org . It was very easy to demo.  I considered ripping out matplotlib and inserting bokeh, as it would have been quick.  I still might, but have bigger fish to fry at the moment.

Those are my top three.  Really, bokeh and mpld3 are my top two python choices, and if I were to consider node (and/or my job was building a plot server to replace stackdriver and not to have useful graphs of analytic tools that aren't yet finished next week), I'm sure I'd have more d3 related choices.  That said, there are a wealth of python plotting options: https://wiki.python.org/moin/NumericAndScientific/Plotting  lists some of them.

This is mostly just a brief knowledge sharing from yesterday; for entertainment purposes only.  matplotlib ain't bad and I'll probably stick with it for now.  I'd love to start moving to a plot server architecture, as Ed mentioned he liked in standup today (I love the idea myself), but that's not my front-burner task.  Still, I hope this is useful.