2016-07-31 13 views
4

Die folgenden Schritte wurden innerhalb von jupyter notebook unternommen, um seaborn.pairplot() arbeiten zu lassen. Ein Fehler von /usr/local/lib/python2.7/site-packages/matplotlib/matplotlib/transforms.pyc hat die Funktion abgebrochen.Seaborn OS X: seaborn.pairplot() ValueError: 'transform' muss eine Instanz von 'matplotlib.transform.Transform' sein

Im Folgenden sind die Python-Bibliothek Versionen:

print(matplotlib.__version__, sns.__version__) 

('1.5.1', '0.7.1') 

Eine csv der Iris Dataset

data = pandas.read_csv('iris.csv') 
data_no_nans = data.dropna() 
sns.pairplot(data_no_nans) 

Fehlermeldung gelesen wurde:

ValueError        Traceback (most recent call last) 
<ipython-input-4-001343d0343b> in <module>() 
----> 1 sns.pairplot(data) 

/usr/local/lib/python2.7/site-packages/seaborn/linearmodels.pyc in pairplot(data, hue, hue_order, palette, vars, x_vars, y_vars, kind, diag_kind, markers, size, aspect, dropna, plot_kws, diag_kws, grid_kws) 
    1588      hue_order=hue_order, palette=palette, 
    1589      diag_sharey=diag_sharey, 
-> 1590      size=size, aspect=aspect, dropna=dropna, **grid_kws) 
    1591 
    1592  # Add the markers here as PairGrid has figured out how many levels of the 

/usr/local/lib/python2.7/site-packages/seaborn/axisgrid.pyc in __init__(self, data, hue, hue_order, palette, hue_kws, vars, x_vars, y_vars, diag_sharey, size, aspect, despine, dropna) 
    1253   if despine: 
    1254    utils.despine(fig=fig) 
-> 1255   fig.tight_layout() 
    1256 
    1257  def map(self, func, **kwargs): 

/usr/local/lib/python2.7/site-packages/matplotlib/figure.pyc in tight_layout(self, renderer, pad, h_pad, w_pad, rect) 
    1752           renderer, 
    1753           pad=pad, h_pad=h_pad, w_pad=w_pad, 
-> 1754           rect=rect) 
    1755 
    1756   self.subplots_adjust(**kwargs) 

/usr/local/lib/python2.7/site-packages/matplotlib/tight_layout.pyc in get_tight_layout_figure(fig, axes_list, subplotspec_list, renderer, pad, h_pad, w_pad, rect) 
    347          subplot_list=subplot_list, 
    348          ax_bbox_list=ax_bbox_list, 
--> 349          pad=pad, h_pad=h_pad, w_pad=w_pad) 
    350 
    351  if rect is not None: 

/usr/local/lib/python2.7/site-packages/matplotlib/tight_layout.pyc in auto_adjust_subplotpars(fig, renderer, nrows_ncols, num1num2_list, subplot_list, ax_bbox_list, pad, h_pad, w_pad, rect) 
    126   tight_bbox_raw = union([ax.get_tightbbox(renderer) for ax in subplots]) 
    127   tight_bbox = TransformedBbox(tight_bbox_raw, 
--> 128          fig.transFigure.inverted()) 
    129 
    130   row1, col1 = divmod(num1, cols) 

/usr/local/lib/python2.7/site-packages/matplotlib/matplotlib/transforms.pyc in __init__(self, bbox, transform, **kwargs) 
    1080    msg = ("'transform' must be an instance of" 
    1081     " 'matplotlib.transform.Transform'") 
-> 1082    raise ValueError(msg) 
    1083   if transform.input_dims != 2 or transform.output_dims != 2: 
    1084    msg = "The input and output dimensions of 'transform' must be 2" 

ValueError: 'transform' must be an instance of 'matplotlib.transform.Transform' 

Regplot funktioniert perfekt

EDIT

Ich vermute, es hat mit matplotlib der Font-Manager eine Fehlfunktion zu tun. Ich löschte fontconfig und würzige Verzeichnisse von ~/.cache/und bekam eine neue Fehlermeldung: Attribute: ‚Modul‘ Objekt hat kein Attribut ‚Gesperrt‘

AttributeError       Traceback (most recent call last) 
<ipython-input-3-001343d0343b> in <module>() 
----> 1 sns.pairplot(data) 

/usr/local/lib/python2.7/site-packages/seaborn/linearmodels.pyc in pairplot(data, hue, hue_order, palette, vars, x_vars, y_vars, kind, diag_kind, markers, size, aspect, dropna, plot_kws, diag_kws, grid_kws) 
    1588      hue_order=hue_order, palette=palette, 
    1589      diag_sharey=diag_sharey, 
-> 1590      size=size, aspect=aspect, dropna=dropna, **grid_kws) 
    1591 
    1592  # Add the markers here as PairGrid has figured out how many levels of the 

/usr/local/lib/python2.7/site-packages/seaborn/axisgrid.pyc in __init__(self, data, hue, hue_order, palette, hue_kws, vars, x_vars, y_vars, diag_sharey, size, aspect, despine, dropna) 
    1253   if despine: 
    1254    utils.despine(fig=fig) 
-> 1255   fig.tight_layout() 
    1256 
    1257  def map(self, func, **kwargs): 

/usr/local/lib/python2.7/site-packages/matplotlib/figure.pyc in tight_layout(self, renderer, pad, h_pad, w_pad, rect) 
    1737   """ 
    1738 
-> 1739   from .tight_layout import (get_renderer, get_tight_layout_figure, 
    1740         get_subplotspec_list) 
    1741 

/usr/local/lib/python2.7/site-packages/matplotlib/tight_layout.py in <module>() 
    15 from matplotlib.transforms import TransformedBbox, Bbox 
    16 
---> 17 from matplotlib.font_manager import FontProperties 
    18 rcParams = matplotlib.rcParams 
    19 

/usr/local/lib/python2.7/site-packages/matplotlib/matplotlib/font_manager.py in <module>() 
    1448     verbose.report("Using fontManager instance from %s" % _fmcache) 
    1449   except: 
-> 1450    _rebuild() 
    1451  else: 
    1452   _rebuild() 

/usr/local/lib/python2.7/site-packages/matplotlib/matplotlib/font_manager.py in _rebuild() 
    1433 
    1434   if _fmcache: 
-> 1435    with cbook.Locked(cachedir): 
    1436     json_dump(fontManager, _fmcache) 
    1437 

AttributeError: 'module' object has no attribute 'Locked' 
+0

funktioniert für mich mit den gleichen Versionen. –

+0

Ich schätze es ist erwähnenswert, dass es ein hausgebrautes Matplotlib und Pip Seaborn installieren. – FreedomToWin

Antwort

1

Also habe ich jetzt meine eigene Frage bin zu beantworten.

löste ich das Problem durch eine Macports virtuelle Umgebung

mit
sudo port selfupdate 
sudo port install python27 
sudo port install py27-virtualenv 


/opt/local/bin/virtualenv-2.7 $HOME/local/python/27 

In .bash_profile:

alias py27="source $HOME/local/python/27/bin/activate" 

Run in Terminal virtuelle env zu setzen und erforderlichen Pakete mit pip zu installieren.

Es ist seltsam, dass die Home-Brew-Installation abgehört hat, und ich frage mich, ob irgendwelche in Konflikt stehenden Pakete installiert waren.

nicht sicher, ob seine verwandten, aber hier ist mein Bash_profile:

# some settings to prefer homebrew paths in case it exists: 
if which -s brew ; then 
    PATH="/usr/local/bin:/usr/local/sbin:$PATH" 
fi 

# set PATH so it includes user's private bin if it exists 
if [ -d "$HOME/bin" ] ; then 
    PATH="$HOME/bin:$PATH" 
fi 

Diese Dinge könnten worden vermasselt.

+0

Ich habe diese Homebrew-Schalter nicht: aber ich bekomme die gleichen Fehler. In 'brew matplotlib' ist etwas nicht in Ordnung – javadba