Python 如何将组合组的箱线图添加到Seaborn中的分组箱线图中?

Python 如何将组合组的箱线图添加到Seaborn中的分组箱线图中?,python,pandas,seaborn,boxplot,Python,Pandas,Seaborn,Boxplot,我已使用Seaborn生成了分组箱线图: sns.boxplot(x="DATE", y="Rate", data=mydata) 我有15个框用于15个不同的日期,现在我想再添加一个框来显示同一个图中的总体分布(即所有组的组合) 如果我只是这样做: sns.boxplot(x="DATE", y="Rate", data=mydata) sns.boxplot(y=mydata["Rate"]

我已使用Seaborn生成了分组箱线图:

sns.boxplot(x="DATE", y="Rate", data=mydata)
我有15个框用于15个不同的日期,现在我想再添加一个框来显示同一个图中的总体分布(即所有组的组合)

如果我只是这样做:

sns.boxplot(x="DATE", y="Rate", data=mydata)
sns.boxplot(y=mydata["Rate"])
我可以生成一个显示所有框的绘图,但我无法正确排列我的Xticklabel。是否有更好的方法添加组合箱线图?或者,如何设置Xticklabel


谢谢大家!

Seaborn的
箱线图
似乎不允许从两个单独的调用组合箱线图。 但是,您可以使用底层matplotlib
boxplot
来实现所需的组合

plt.boxplot
的第一个参数是一个列表。列表的每个条目都包含与该条目的箱线图对应的数据集。因此,每天创建一个列表,其中包含一个数据集,并为整个箱线图创建一个单独的条目。
positions=
参数告诉每个箱线图的x位置
patch_artist=True
创建可填充的箱线图(默认为仅包含线的箱线图)。中间带的颜色可以更改,以便更好地显示,具体取决于为框选择的颜色

导入matplotlib.pyplot作为plt
将numpy作为np导入
作为pd进口熊猫
导入seaborn作为sns
#创建15天的玩具数据
日期=pd.日期范围('2020-10-01',频率=D',周期=15)
df=pd.DataFrame({'DATE':pd.to_datetime(np.random.choice(dates,500)),
“速率”:np.随机.均匀(2,10500)})
图,ax=plt.子批次(图尺寸=(12,4))
ax.boxplot([df[df['DATE']==d]['Rate']表示日期中的d]+[df['Rate'],
位置=范围(长度(日期)+1),面片=真,
medianprops={'color':'navy'})
#指定颜色,就像将其设置为seaborn一样
对于盒子,拉链颜色(ax.artists,sns.color_调色板('husl',len(ax.artists)):
框。设置颜色(颜色)
#设置x记号的标签
ax.set_xticklabels([str(d)[:10]表示日期中的d]+['overall',旋转=45)
#(可选)添加垂直线以分隔特殊框
ax.axvline(len(dates)-0.5,color='black',ls=':')
plt.紧_布局()
plt.show()


PS:显示了一种在seaborn
条形图
箱线图
中设置带日期的XTICK的方法,这正是我所需要的!如果其他人需要:我的数据中有许多nan值,我必须在绘图之前删除它们。为了对日期进行排序,我使用了以下方法:parse_dates=[“DATE”]mydata.sort_值(by=[“DATE”],inplace=True)。非常感谢你!