Re: [Matplotlib-users] violin plots

2009-09-18 Thread John Hunter
On Thu, Sep 17, 2009 at 11:28 PM, Andrew Straw straw...@astraw.com wrote:
 Flávio Coelho has implemented Violin plots for MPL. Nice! He has a
 question regarding its suitability for inclusion due to a dependency on
 scipy for the gaussian_kde function.
 http://pyinsci.blogspot.com/2009/09/violin-plot-with-matplotlib.html

 Is there a place this could live in the MPL code base without requiring
 scipy? Perhaps we should just include it as a demo. I note that
 examples/pylab_examples/demo_agg_filter.py requires scipy, too.

 Thanks Flávio for sharing -- I have occasionally wondered how my data
 would look in a violin plot.

These do look nice, and the implementation is fairly light.

I don't have strong feelings about what the best way to include this is:

  * as an example

  * as a proper mpl pyplot/axes function that imports scipy internally
and raises if it can't find it

  * that requires a kde  to be passed in

Of these, the top two are probably preferable since in practice
everyone would just pass in the kde from scipy so why not just save
them the step and try to import it ourselves.  While I don't want the
core of mpl to require scipy, I can certainly abide by some functions
requiring it as long as they raise helpful errors.  So I'm leaning
towards the 2nd option (we already do something like this -- we
conditionally import Image in imread for example)

If we go that way, we will have the worry about version dependencies
and what we want to require on the buildbots.

As for a patch, the implementation looks good though we need a better
docstring and one that is Sphinx compliant.  One thing you will want
to consider is how to support the boxplot and fill between keywords.
Eg, people will want to customize the fills, so you may want something
like

violin_plot(blah, fillprops=None, boxprops=None):
if fillprops is None:
fillprops = dict(facecolor='yellow', alpha=0.3)

if boxprops is None:
boxprops = dict(notch=1, vert=1)

ax.fill_betweenx(blahblah, **fillprops)

etc...  that way people can sti

In you docstring, you should also point to the fill_betweenx and
boxprops docs using the Sphinx API conventions.

Finally, we will need a pass-through interface in pyplot, most likely
through a boilerplate.py entry, and a unit test :-)

Some of this is discussed at
http://matplotlib.sourceforge.net/devel/coding_guide.html, but some of
these conventions are undocumented, so we're happy to help with any
part that is confusing.

JDH

--
Come build with us! The BlackBerryreg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9#45;12, 2009. Register now#33;
http://p.sf.net/sfu/devconf
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] violin plots

2009-09-17 Thread Andrew Straw
Flávio Coelho has implemented Violin plots for MPL. Nice! He has a
question regarding its suitability for inclusion due to a dependency on
scipy for the gaussian_kde function.
http://pyinsci.blogspot.com/2009/09/violin-plot-with-matplotlib.html

Is there a place this could live in the MPL code base without requiring
scipy? Perhaps we should just include it as a demo. I note that
examples/pylab_examples/demo_agg_filter.py requires scipy, too.

Thanks Flávio for sharing -- I have occasionally wondered how my data
would look in a violin plot.

-Andrew

--
Come build with us! The BlackBerryreg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9#45;12, 2009. Register now#33;
http://p.sf.net/sfu/devconf
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users