Seaborn.histplot() 方法

Seaborn.histplot() 方法有助于可视化数据集分布。 我们可以绘制单变量或双变量直方图。

直方图是一种传统的可视化工具,它计算落入离散区间的数据数量,以说明一个或多个变量的分布。 此函数可以将使用核密度估计导出的平滑曲线添加到每个 bin 内计算的统计数据,以估计频率、密度或概率质量。

语法

以下是 Seaborn.histplot() 方法的语法 −

seaborn.histplot(data=None, *, x=None, y=None, hue=None, weights=None, stat='count', bins='auto', binwidth=None, binrange=None, discrete=None, cumulative=False, common_bins=True, common_norm=True, multiple='layer', element='bars', fill=True, shrink=1, kde=False, kde_kws=None, line_kws=None, thresh=0, pthresh=None, pmax=None, cbar=False, cbar_ax=None, cbar_kws=None, palette=None, hue_order=None, hue_norm=None, color=None, log_scale=None, legend=True, ax=None, **kwargs)

参数

该方法的部分参数如下所示 −

S.NO 参数及说明
1 x,y

在 x,y 轴上表示的变量。

2 Hue

这将产生具有不同颜色的元素。 它是一个分组变量。

3 stat

这些参数定义了要绘制的子集。

4 bins

此参数采用输入数据结构。 那是映射或序列。

5 Binwidth

布尔值,如果为 true,则显示边缘刻度。

6 Binrange

对应于要绘制的图的种类。 可以是 hist、kde 或 ecdf。

7 Cumulative

随着 bin 数量的增加绘制累积计数。

8 Multiple

与单变量数据相关并取值:stacked、layer、dodge 和 fill。

9 Log_scale

将轴刻度设置为对数,绘制的值采用对数刻度。

10 Legend

布尔值。 如果为 false,则不会打印出语义变量的图例。

让我们在继续开发绘图之前加载 seaborn 库和数据集。


载入seaborn 库

要加载或导入 seaborn 库,可以使用以下代码行。

Import seaborn as sns

加载数据集

在本文中,我们将使用 seaborn 库中内置的 Tips 数据集。 以下命令用于加载数据集。

tips=sns.load_dataset("tips")

下面提到的命令用于查看数据集中的前 5 行。 这使我们能够了解哪些变量可用于绘制图形。

tips.head()

以下是上面这段代码的输出。

index,total_bill,tip,sex,smoker,day,time,size
0,16.99,1.01,Female,No,Sun,Dinner,2
1,10.34,1.66,Male,No,Sun,Dinner,3
2,21.01,3.5,Male,No,Sun,Dinner,3
3,23.68,3.31,Male,No,Sun,Dinner,2
4,24.59,3.61,Female,No,Sun,Dinner,4

现在我们已经加载了数据,我们将继续绘制数据。

示例 1

打印双变量直方图并使用 bins 参数。 此参数采用 bin 的数量并在直方图中绘制这些 bin。

import seaborn as sns
import matplotlib.pyplot as plt
tips=sns.load_dataset("tips")
tips.head()
sns.histplot(data=tips, x="total_bill", hue="sex",bins=20)
plt.show()

输出

绘图的输出如下所示。

直方图

示例 2

要绘制不同种类的图,可以使用元素参数来更改要绘制的图的种类。 此参数可以采用值、bar、step 和 poly。

下面的代码片段可以用来理解元素参数的用法。

import seaborn as sns
import matplotlib.pyplot as plt
tips=sns.load_dataset("tips")
tips.head()
sns.histplot(data=tips, x="total_bill", hue="sex", element="poly")
plt.show()

输出

下图显示了使用上述代码片段后获得的输出。

Seaborn histplot

示例 3

在这个例子中,我们将了解如何绘制分类变量的图。 在 histplot 方法中,为分类变量绘制图形仍在开发中,是一项实验性功能。 但是,我们现在仍然可以知道如何使用它。

import seaborn as sns
import matplotlib.pyplot as plt
tips=sns.load_dataset("tips")
tips.head()
sns.histplot(data=tips, x="time",hue="sex",shrink=.7)
plt.show()

输出

这里,time 和 sex 都是分类变量,参数 shrink 用于指定 bin 之间的宽度间距。 上述代码的输出如下图所示。 如前所述,由于使用了收缩,图中的 bin 之间存在间距。

time 和 sex 变量

示例 4

在这个例子中,我们将绘制一个对数尺度的直方图。 能够以对数比例绘制图形在许多业务场景中非常有用,下面我们将看到 log_scale 和 histplot() 方法中的一些其他参数的用法。

上面讨论的元素参数将描述要绘制的图形的种类。 它可以是条形、台阶和多边形。 fill 参数采用布尔值并填充图形或保持不填充。 在上面的所有示例中,我们都看到了填充的图形,在这种情况下,我们将布尔值 False 传递给 fill 参数并观察图形中的差异。

import seaborn as sns
import matplotlib.pyplot as plt
tips=sns.load_dataset("tips")
tips.head()
sns.histplot(data=tips, x="total_bill", log_scale=True,element="step", fill=False)
plt.show()

输出

上面的代码片段给出了下图。

time 和 sex 变量

这是 histplot() 方法及其各种参数的用法。

❮Seaborn 分布图简介