Seaborn.ecdfplot() 方法



Seaborn.edcfplot() 方法用于绘制经验累积分布函数。

经验累积分布函数表示数据集中低于每个不同值的观测值的百分比或计数。它的优点是每个观测值都直接显示,而不是像直方图或密度图那样,因此无需更改分箱或平滑设置。它也使直接比较不同的分布更容易。

一个缺点是,直观地理解图表外观与分布的基本特征(如其集中趋势、方差和是否存在双峰性)之间的联系可能不够清晰。

语法

以下是seaborn.ecdfplot() 方法的语法:

seaborn.ecdfplot(data=None, *, x=None, y=None, hue=None, weights=None, stat='proportion', complementary=False, palette=None, hue_order=None, hue_norm=None, log_scale=None, legend=True, ax=None, **kwargs

参数

上述方法的一些参数如下所示。

序号 参数和描述
1 x,y

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

2 Hue

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

3 Complementary

此参数用于绘制累积分布函数的补集,即;1-CDF。

4 Stat

此参数取值proportion和count。它是要计算的分布统计量。

5 palette

当也考虑色调映射时,此参数设置图表的颜色。

6 Hue_order

在色调语义中绘制分类变量的顺序。

7 Hue_norm

用于设置色调语义中数据单位的归一化范围。提供一对数据值。

8 Weights

如果传递此参数,则这些数字将用于加权各个数据点对累积分布的贡献。

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

在这个例子中,我们将看到如何为数据集中单个变量绘制经验累积分布函数图。

import seaborn as sns
import matplotlib.pyplot as plt
tips=sns.load_dataset("tips")
tips.head()
sns.ecdfplot(data=tips, x="tip")
plt.show()

输出

上述代码的输出如下所示。

empirical cumulative distribution function plot

示例2

在这个例子中,我们将看到stat参数的用法。它可以取值proportion和count。它用于指定要计算的分布统计量。

将“proportion”传递给stat参数。执行此操作的代码如下所示。

import seaborn as sns
import matplotlib.pyplot as plt
tips=sns.load_dataset("tips")
tips.head()
sns.ecdfplot(data=tips, x="tip",hue="time",stat="proportion")
plt.show()

输出

以下代码行的输出如下

passing proportion

将“count”传递给stat参数。执行此操作的代码如下所示。

import seaborn as sns
import matplotlib.pyplot as plt
tips=sns.load_dataset("tips")
tips.head()
sns.ecdfplot(data=tips, x="tip",hue="time",stat="count")
plt.show()

以下代码行的输出如下

Passing count

示例3

seaborn.ecdfplot() 方法的complementary参数用于绘制累积分布函数的补集,它使用1-CDF计算。如果为True,则打印补集。如下所示。

import seaborn as sns
import matplotlib.pyplot as plt
tips=sns.load_dataset("tips")
tips.head()
sns.ecdfplot(data=tips, x="tip",hue="time",stat="proportion",complementary=True)
plt.show()

输出

对于上面给出的代码片段,将绘制以下输出。

seaborn ecdfplot method

示例4

在这个例子中,我们将看到如何不发送任何参数,但仍然能够在屏幕上绘制数据。

如果既未赋值x也未赋值y,则数据集将作为宽格式处理,并为每个数值列创建一个直方图。

以下代码行也可以用于数据集中有多个同名列或以相同名称开头的列的情况。

import seaborn as sns
import matplotlib.pyplot as plt
tips=sns.load_dataset("tips")
tips.head()
sns.ecdfplot(data=tips.filter(like="total_", axis="columns"))
plt.show()

输出

代码片段的输出如下所示。

proportion
seaborn_distribution_plot_introduction.htm
广告