[seaborn] 02/14: Fix boxplot/violinplot brokenness on Pandas 0.13

Andreas Tille tille at debian.org
Fri Jan 20 15:00:38 UTC 2017


This is an automated email from the git hooks/post-receive script.

tille pushed a commit to tag v0.2.1
in repository seaborn.

commit ae1e80af5ab39bf4a3c66bfbcb799a44332bfd18
Author: mwaskom <mwaskom at stanford.edu>
Date:   Tue Dec 24 18:17:22 2013 -0800

    Fix boxplot/violinplot brokenness on Pandas 0.13
---
 seaborn/distributions.py | 32 +++++++++++++-------------------
 1 file changed, 13 insertions(+), 19 deletions(-)

diff --git a/seaborn/distributions.py b/seaborn/distributions.py
index 782b21c..0504af8 100644
--- a/seaborn/distributions.py
+++ b/seaborn/distributions.py
@@ -61,15 +61,14 @@ def boxplot(vals, groupby=None, names=None, join_rm=False, order=None,
 
     # Handle case where data is a wide DataFrame
     if isinstance(vals, pd.DataFrame):
-        if names is None:
-            names = vals.columns
         if vals.columns.name is not None:
             xlabel = vals.columns.name
         else:
             xlabel = None
         if order is not None:
             vals = vals[order]
-            names = order
+        if names is None:
+            names = vals.columns
         vals = vals.values
         ylabel = None
 
@@ -77,14 +76,12 @@ def boxplot(vals, groupby=None, names=None, join_rm=False, order=None,
     elif isinstance(vals, pd.Series) and groupby is not None:
         if names is None:
             names = np.sort(pd.unique(groupby))
+        order = names if order is None else order
         if hasattr(groupby, "name"):
             xlabel = groupby.name
         ylabel = vals.name
-        grouped_vals = pd.groupby(vals, groupby).values
-        if order is not None:
-            grouped_vals = grouped_vals[order]
-            names = order
-        vals = grouped_vals.values
+        groups = pd.groupby(vals, groupby).groups
+        vals = [vals.reindex(groups[name]) for name in order]
     else:
         xlabel = None
         ylabel = None
@@ -242,30 +239,27 @@ def violinplot(vals, groupby=None, inner="box", color=None, positions=None,
 
     # Find existing names
     if isinstance(vals, pd.DataFrame):
-        if names is None:
-            names = vals.columns
         if vals.columns.name is not None:
             xlabel = vals.columns.name
         else:
             xlabel = None
-        ylabel = None
         if order is not None:
             vals = vals[order]
-            names = order
+        if names is None:
+            names = vals.columns
         vals = vals.values
+        ylabel = None
 
     # Possibly perform a group-by to get the batches
     elif isinstance(vals, pd.Series) and groupby is not None:
-        if hasattr(groupby, "name"):
-            xlabel = groupby.name
         if names is None:
             names = np.sort(pd.unique(groupby))
+        order = names if order is None else order
+        if hasattr(groupby, "name"):
+            xlabel = groupby.name
         ylabel = vals.name
-        grouped_vals = pd.groupby(vals, groupby).values
-        if order is not None:
-            grouped_vals = grouped_vals[order]
-            names = order
-        vals = grouped_vals.values
+        groups = pd.groupby(vals, groupby).groups
+        vals = [vals.reindex(groups[name]) for name in order]
     else:
         xlabel = None
         ylabel = None

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/seaborn.git



More information about the debian-science-commits mailing list