如何在与Seaborn相同的图上绘制多个直方图

发布于 2021-01-29 15:14:25

使用matplotlib,我可以在一个绘图上制作带有两个数据集的直方图(一个数据集紧挨另一个,而不是覆盖)。

import matplotlib.pyplot as plt
import random

x = [random.randrange(100) for i in range(100)]
y = [random.randrange(100) for i in range(100)]
plt.hist([x, y])
plt.show()

这将产生以下图。

在此处输入图片说明

但是,当我尝试使用seabron进行此操作时;

import seaborn as sns
sns.distplot([x, y])

我收到以下错误:

ValueError: color kwarg must have one color per dataset

因此,我尝试添加一些颜色值:

sns.distplot([x, y], color=['r', 'b'])

而且我得到同样的错误。我看到这个帖子就如何叠加图,但我想这些直方图是并排,不重叠。

并查看文档,它没有指定如何将列表列表作为第一个参数“
a”。

如何使用seaborn实现这种直方图样式?

关注者
0
被浏览
188
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    如果我对您的理解正确,则可以尝试以下操作:

    fig, ax = plt.subplots()
    for a in [x, y]:
        sns.distplot(a, bins=range(1, 110, 10), ax=ax, kde=False)
    ax.set_xlim([0, 100])
    

    应该产生这样的情节:

    在此处输入图片说明

    更新

    看起来您想要的是“季节性的外观”,而不是季节性的绘图功能。为此,您只需要:

    import seaborn as sns
    plt.hist([x, y], color=['r','b'], alpha=0.5)
    

    会产生:

    在此处输入图片说明



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看