Matplotlib:同一绘图上的两个直方图(共享x轴)?

Matplotlib:同一绘图上的两个直方图(共享x轴)?,matplotlib,histogram,Matplotlib,Histogram,我有一个数据框架,我将一列的值过滤成两组:异常值和标准值。我在单独的列表中有两个组,我想创建两个直方图-一个用于异常值,一个用于标准数据-并将它们一起显示在同一个图上,并使它们共享轴 我开始的代码循环了这两个组,并将它们传递给seaborn.dist(),但是第二个数据集重置了x_轴上的缩放,并且异常值组几乎不可见。最近,我一直在学习matplotlib教程,并将在路径教程中阅读有关复合路径的内容 一位同事可以使用R实现这个结果,但我正在尝试在matplotlib中实现它。使用matplotli

我有一个数据框架,我将一列的值过滤成两组:异常值和标准值。我在单独的列表中有两个组,我想创建两个直方图-一个用于异常值,一个用于标准数据-并将它们一起显示在同一个图上,并使它们共享轴

我开始的代码循环了这两个组,并将它们传递给seaborn.dist(),但是第二个数据集重置了x_轴上的缩放,并且异常值组几乎不可见。最近,我一直在学习matplotlib教程,并将在路径教程中阅读有关复合路径的内容


一位同事可以使用R实现这个结果,但我正在尝试在matplotlib中实现它。

使用matplotlib也可以轻松实现。 您可以使用seaborn和matplotlib或单独使用matplotlib来执行此操作。下面是使用seaborn绘制直方图的第一个版本。您可以使用
ax.set\u xlim(最小值、最大值)来调整xlim。

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
data=np.random.normal(5,1,100)
outliers=np.random.normal(10,.5,100)
fig,ax=plt.subplots()
sns.distplot(data,ax=ax)
sns.distplot(outliers,ax=ax)
ax.set_xlim(0,15)