首页 > 解决方案 > Matplotlib:同一个图上的两个直方图(共享 x 轴)?

问题描述

我有一个数据框,我已将一列的值过滤为两组:异常值和标准值。我将这两组放在不同的列表中,我想创建 2 个直方图——一个用于异常值,一个用于标准数据——并将它们一起显示在同一个图上并让它们共享轴。

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

一位同事能够使用 R 实现结果,但我正在尝试在 matplotlib 中解决它。

标签: matplotlibhistogram

解决方案


它也可以通过 Matplotlib 轻松实现。您可以单独使用 seaborn 和 matplotlib 或 matplotlib。下面是第一个使用 seaborn 绘制直方图的版本。您可以使用调整 xlimitsax.set_xlim(min_value,max_value)

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)

推荐阅读