Python中的比较箱线图

Python中的比较箱线图,python,pandas,seaborn,boxplot,Python,Pandas,Seaborn,Boxplot,我有一个类似于下面的数据框架 names x 3.5 x 3.7 z 2.8 x 3.4 y 3.25 z 2.9 ... 我想做一个比较性的箱线图,三个箱线图,分别对应于x,y和z。我使用的是seaborn包,我只能得到所有组合值的箱线图。我做错了什么 b = sns.boxplot(data = dat); 我想你可以这样画: import pandas as pd import seaborn as sns from io impo

我有一个类似于下面的数据框架

names   
x     3.5
x     3.7
z     2.8
x     3.4
y     3.25
z     2.9
...
我想做一个比较性的箱线图,三个箱线图,分别对应于x,y和z。我使用的是seaborn包,我只能得到所有组合值的箱线图。我做错了什么

b = sns.boxplot(data = dat);
我想你可以这样画:

import pandas as pd
import seaborn as sns
from io import StringIO
data = """
names,num
x,3.5
x,3.7
z,2.8
x,3.4
y,3.25
z,2.9
"""
df = pd.read_csv(StringIO(data), header=0)
to_replace = {0:'x', 1:'y', 2:'z'}
df['names'] = df['names'].replace(to_replace=to_replace)
order = ["x", "y", "z"]
sns.boxplot(x="names", y="num", data=df, order=order)
以下是方框图:

参考文献:


它是一个数据帧还是一个系列?它是一个数据帧。我还有其他列@QuangHoangSo是用x、y、z命名的列,数字的列名是什么?请参阅。sns.boxplotx='name',y='value',data=dat