2016-10-08 25 views
3

我尽量让垂直seaborn箱线图这样Seaborn箱线图:类型错误:不支持的操作数类型(S)为/: '海峡' 和 '廉政'

import pandas as pd 
df = pd.DataFrame({'a' : ['a', 'b' , 'b', 'a'], 'b' : [5, 6, 4, 3] }) 
import seaborn as sns 
import matplotlib.pylab as plt 
%matplotlib inline 
sns.boxplot( x= "b",y="a",data=df) 

我得到

enter image description here

我写东方

sns.boxplot( x= "c",y="a",data=df , orient = "v") 

,并得到

TypeError: unsupported operand type(s) for /: 'str' and 'int' 

sns.boxplot( x= "c",y="a",data=df , orient = "h") 

作品coreect! 有什么不对?

%matplotlib inline 
import pandas as pd 
import seaborn as sns 

df = pd.DataFrame({'a' : ['a', 'b' , 'b', 'a'], 'b' : [5, 6, 4, 3] }) 

# horizontal boxplots 
sns.boxplot(x="b", y="a", data=df, orient='h') 

# vertical boxplots 
sns.boxplot(x="a", y="b", data=df, orient='v') 

混合起来的列将导致seaborn:

TypeError         Traceback (most recent call last) 
<ipython-input-16-5291a1613328> in <module>() 
----> 1 sns.boxplot( x= "b",y="a",data=df , orient = "v") 

C:\Program Files\Anaconda3\lib\site-packages\seaborn\categorical.py in boxplot(x, y, hue, data, order, hue_order, orient, color, palette, saturation, width, fliersize, linewidth, whis, notch, ax, **kwargs) 
    2179  kwargs.update(dict(whis=whis, notch=notch)) 
    2180 
-> 2181  plotter.plot(ax, kwargs) 
    2182  return ax 
    2183 

C:\Program Files\Anaconda3\lib\site-packages\seaborn\categorical.py in plot(self, ax, boxplot_kws) 
    526  def plot(self, ax, boxplot_kws): 
    527   """Make the plot.""" 
--> 528   self.draw_boxplot(ax, boxplot_kws) 
    529   self.annotate_axes(ax) 
    530   if self.orient == "h": 

C:\Program Files\Anaconda3\lib\site-packages\seaborn\categorical.py in draw_boxplot(self, ax, kws) 
    463           positions=[i], 
    464           widths=self.width, 
--> 465           **kws) 
    466     color = self.colors[i] 
    467     self.restyle_boxplot(artist_dict, color, props) 

C:\Program Files\Anaconda3\lib\site-packages\matplotlib\__init__.py in inner(ax, *args, **kwargs) 
    1816      warnings.warn(msg % (label_namer, func.__name__), 
    1817         RuntimeWarning, stacklevel=2) 
-> 1818    return func(ax, *args, **kwargs) 
    1819   pre_doc = inner.__doc__ 
    1820   if pre_doc is None: 

C:\Program Files\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py in boxplot(self, x, notch, sym, vert, whis, positions, widths, patch_artist, bootstrap, usermedians, conf_intervals, meanline, showmeans, showcaps, showbox, showfliers, boxprops, labels, flierprops, medianprops, meanprops, capprops, whiskerprops, manage_xticks, autorange) 
    3172    bootstrap = rcParams['boxplot.bootstrap'] 
    3173   bxpstats = cbook.boxplot_stats(x, whis=whis, bootstrap=bootstrap, 
-> 3174          labels=labels, autorange=autorange) 
    3175   if notch is None: 
    3176    notch = rcParams['boxplot.notch'] 

C:\Program Files\Anaconda3\lib\site-packages\matplotlib\cbook.py in boxplot_stats(X, whis, bootstrap, labels, autorange) 
    2036 
    2037   # arithmetic mean 
-> 2038   stats['mean'] = np.mean(x) 
    2039 
    2040   # medians and quartiles 

C:\Program Files\Anaconda3\lib\site-packages\numpy\core\fromnumeric.py in mean(a, axis, dtype, out, keepdims) 
    2883 
    2884  return _methods._mean(a, axis=axis, dtype=dtype, 
-> 2885       out=out, keepdims=keepdims) 
    2886 
    2887 

C:\Program Files\Anaconda3\lib\site-packages\numpy\core\_methods.py in _mean(a, axis, dtype, out, keepdims) 
    70   ret = ret.dtype.type(ret/rcount) 
    71  else: 
---> 72   ret = ret/rcount 
    73 
    74  return ret 

TypeError: unsupported operand type(s) for /: 'str' and 'int' 
+0

你能分享完整的追溯吗? – Mureinik

+0

对不起,我已经完成了 – Edward

+1

你必须切换'x'和'y'赋值:'sns.boxplot(x =“a”,y =“b”,data = df,orient ='v') ' – cel

回答

6

对于seaborn的箱线图,以保持在x轴和y轴分配的眼睛,水平和垂直对齐之间切换时是很重要的尝试计算分类数据框的摘要统计信息,这些分类数据必然会失败。

相关问题