MEP28 (Draft) Boxplots Enhancements and Simplifications

Hello everyone,

We are soliciting feedback and comments on a new MEP (#28) proposing some
high-level changes to the boxplot API has been released in *draft* form
here:

http://matplotlib.org/devdocs/devel/MEP/MEP28.html

The goals of the MEP are as follows:
1) Deprecate and remove seldom used*, difficult-to-use, and redundant**
kwargs
2) Synchronize parameter names between `boxplot` and `bxp`
3a) Allow user-defined pre- and post-stat calculation data transformation
functions to `boxplot`
OR
3b) Allow users to pass their own statistics function (with parameters) to `
boxplot`

The functionality of #3a/3b is currently available to users if they go
through the `bxp` function instead of the `boxplot` function. However, this
isn't much help for users of downstream libraries like pandas and seaborn.
The goal of #3 in general is to allow the following in e.g., seaborn:

import seaborn
tips = seaborn.load_data('tips')g = seaborn.factorplot(x="day",
y="total_bill", hue="sex", data=tips,
                       kind='box', palette="PRGn", shownotches=True,
                       statfxn=my_box_stats, bootstrap_method='BCA',
                       whisker_method='dynamic')

This kind of flexibility would also be available under the current pandas
API.

This MEP is very much still a draft and has not been accepted. If you have
opinions about the proposed changes (positive or negative) we're all ears.

-Paul H.

* It is our perception that the usermedians and conf_intervals parameters
don't get much use and are fairly difficult use. Additionally, the logic
that handles and validates them is quite complex and difficult to maintain.

** The sym parameter is redundant with the flierprops parameter, which has
been around for a few releases now. The code that reconciles the default
marker style with both of these inputs is also complex and difficult to
maintain.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-users/attachments/20161020/2c3f4e72/attachment.html>

Bumping this to see if the weekend crowd has any strong feelings about the
state of the boxplot API and how you'd like to see it (not) change.
-p

···

On Thu, Oct 20, 2016 at 9:48 AM, Paul Hobson <pmhobson at gmail.com> wrote:

Hello everyone,

We are soliciting feedback and comments on a new MEP (#28) proposing some
high-level changes to the boxplot API has been released in *draft* form
here:

MEP28: Remove Complexity from Axes.boxplot — Matplotlib 3.9.0.dev730+gfcf57fe49e documentation

The goals of the MEP are as follows:
1) Deprecate and remove seldom used*, difficult-to-use, and redundant**
kwargs
2) Synchronize parameter names between `boxplot` and `bxp`
3a) Allow user-defined pre- and post-stat calculation data transformation
functions to `boxplot`
OR
3b) Allow users to pass their own statistics function (with parameters) to
`boxplot`

The functionality of #3a/3b is currently available to users if they go
through the `bxp` function instead of the `boxplot` function. However,
this isn't much help for users of downstream libraries like pandas and
seaborn. The goal of #3 in general is to allow the following in e.g.,
seaborn:

import seaborn
tips = seaborn.load_data('tips')g = seaborn.factorplot(x="day", y="total_bill", hue="sex", data=tips,
                       kind='box', palette="PRGn", shownotches=True,
                       statfxn=my_box_stats, bootstrap_method='BCA',
                       whisker_method='dynamic')

This kind of flexibility would also be available under the current pandas
API.

This MEP is very much still a draft and has not been accepted. If you have
opinions about the proposed changes (positive or negative) we're all ears.

-Paul H.

* It is our perception that the usermedians and conf_intervals parameters
don't get much use and are fairly difficult use. Additionally, the logic
that handles and validates them is quite complex and difficult to maintain.

** The sym parameter is redundant with the flierprops parameter, which
has been around for a few releases now. The code that reconciles the
default marker style with both of these inputs is also complex and
difficult to maintain.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-users/attachments/20161023/99992d57/attachment.html&gt;