如何使用python ggplot包制作箱线图

如何使用python ggplot包制作箱线图,python,pandas,ggplot2,boxplot,Python,Pandas,Ggplot2,Boxplot,我正在尝试并且非常喜欢ggplot()的python端口 我想做一些数据的箱线图,但不知道怎么做,希望有人能帮忙 以下是示例代码: #Create pandas dataframe with random number data and labels 'A', 'B' data = pd.DataFrame(np.random.randn(1,40)).transpose() labels = np.repeat(['A','B'],20) data['labels']=labels data.

我正在尝试并且非常喜欢ggplot()的python端口

我想做一些数据的箱线图,但不知道怎么做,希望有人能帮忙

以下是示例代码:

#Create pandas dataframe with random number data and labels 'A', 'B'
data = pd.DataFrame(np.random.randn(1,40)).transpose()
labels = np.repeat(['A','B'],20)
data['labels']=labels
data.columns = ['vals','labels']
输出

   vals          labels
0 -0.685582      A
1 -0.332966      A
2  0.766283      A
3  1.751677      A
4  1.613434      A
现在我试着

ggplot(data,aes(x='labels',y='vals')) + geom_boxplot()
我得到了错误

<repr(<ggplot.ggplot.ggplot at 0x7f204dbb4810>) failed: TypeError: cannot perform reduce with flexible type>


经过一段时间的搜索,我认为问题在于标签是字符串值的分类数据,但我不确定如何让ggplot在x轴上识别这一点,我认为在python
ggplot
中,使用x轴显示标签目前是不可能的。我可以使用
x='vals',y='labels'
创建单独的箱线图,但我无法调整x轴

from ggplot import ggplot, aes, geom_boxplot

import pandas as pd
import numpy as np

data = pd.DataFrame(np.random.randn(1,40)).transpose()
labels = np.repeat(['A','B'],20)
data['labels']=labels
data.columns = ['vals','labels']

ggplot(data, aes(x='vals', y='labels')) + geom_boxplot()
查看
geom_箱线图的代码
似乎无法调整轴映射到:

为了绕过这个限制,我通常会在R中使用
coord\u flip
,但似乎
coord\u flip

这就是说,由于ggplot包装matplotlib,您可以创建一个新的
geom_boxplot
,它使用
vert=True
调用
matplotlib
,而不是
vert=False
,如中所示


我希望这些信息有帮助

我不认为使用x轴显示标签在python
ggplot
中是可行的。我可以使用
x='vals',y='labels'
创建单独的箱线图,但我无法调整x轴

from ggplot import ggplot, aes, geom_boxplot

import pandas as pd
import numpy as np

data = pd.DataFrame(np.random.randn(1,40)).transpose()
labels = np.repeat(['A','B'],20)
data['labels']=labels
data.columns = ['vals','labels']

ggplot(data, aes(x='vals', y='labels')) + geom_boxplot()
查看
geom_箱线图的代码
似乎无法调整轴映射到:

为了绕过这个限制,我通常会在R中使用
coord\u flip
,但似乎
coord\u flip

这就是说,由于ggplot包装matplotlib,您可以创建一个新的
geom_boxplot
,它使用
vert=True
调用
matplotlib
,而不是
vert=False
,如中所示


我希望这些信息有帮助

非常感谢@erik-e,现在将使用水平箱线图,并在我有时间时尝试扩展geom_箱线图。我会投票给你的答案,但是没有足够的信任。谢谢@erik-e,我现在会使用水平箱线图,等我有时间的时候会尝试扩展geom_箱线图。我会支持你的答案,但没有足够的可信度