annotate a_brief_plotting_survey.txt @ 182:a4a665aa8569

py35
author Jeff Hammel <k0scist@gmail.com>
date Sun, 19 Feb 2017 21:00:59 -0800
parents 31a004976411
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
170
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
1 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.
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
2
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
3 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.
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
4
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
5 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).
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
6
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
7 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
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
8
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
9 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.
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
10
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
11 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.
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
12
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
13 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.