Seaborn: a high-level Python interface for drawing statistical graphics
github.com
github.com
https://en.wikipedia.org/wiki/Medcouple
This should be taken as the design spec of a clean-room reverse engineering, so that we can have a free, fast and non-copylefted implementation. It's not that I have a problem with copyleft (in fact, I prefer it), but I really want statsmodels to fix their implementation, and they're GPL-phobic.
Since Seaborn has boxplots, implementing an adjusted boxplot seems relevant.
edit: Oh, one more thing. I'd love any feedback on how to improve the "design spec", in case I wasn't able to make it clear enough.
Besides, I just don't feel like it's fair to the R copyright authors. They worked hard to produce an implementation and they copylefted it, and I heavily relied on their implementation in order to reimplement it myself.
According to the United States Copyright Office[1], the algorithm itself can't be copyrighted, so that's why I wrote a high-level description of the algorithm.
----
[1] "Copyright protection is not available for ideas, program logic, algorithms, systems, methods, concepts, or layouts."
But suppose you decide to reimplement the algorithm now, months later (based only on the notes you wrote on Wikipedia). I'm not a lawyer, but I would say that's almost certainly independent, unless you have extraordinary memory.
I'm new to Seaborn and matplotlib in general, but Seaborn is a wrapper on top of matplotlib, and from what I can tell, was borne partly out of frustration with how hard it is to get matplotlib graphics to look decent out-of-the-box. Which makes it, in one sense, kind of like what ggplot2 was to R's standard plotting tools.
However, Seaborn has a more object-oriented API, among other things:
http://stanford.edu/~mwaskom/software/seaborn/introduction.h...
> Seaborn’s goals are similar to those of R’s ggplot, but it takes a different approach with an imperative and object-oriented style that tries to make it straightforward to construct sophisticated plots. If matplotlib “tries to make easy things easy and hard things possible”, seaborn aims to make a well-defined set of hard things easy too.
There already is an attempt to port ggplot over to Python, and its authors' opinion is that its API should look like R's ggplot2, which means the syntax is not Pythonic: http://ggplot.yhathq.com/
http://matplotlib.org/users/style_sheets.html
which gets you ~75% of the way there to ggplot style plots. I've found a number of edge cases where the plots don't turn out right when using the ggplot sheet. BUT the important part is you can set your own default plotting style with a single line of code and keep everything nice and pythonic (well kind of pythonic since you're using matplotlib...)
Check out the gallery for examples: https://web.stanford.edu/~mwaskom/software/seaborn/examples/...
You can setup pandas and ipython and write automatic data anlysis scripts that pump out absolutely beautiful graphs with hardly any effort at all.
Thanks so much to all the people contributing to this awesome python project