[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