Seaborn.ecdfplot() 方法
Seaborn.edcfplot() 方法用于绘制经验累积分布函数。
数据集中低于每个不同值的观察值的百分比或计数由经验累积分布函数表示。 它的好处是每个观察结果都会立即显示,而不是直方图或密度图,因此不需要更改分箱或平滑设置。 它还可以更轻松地直接比较不同的分布。
一个缺点是,图的外观与分布的基本特征(例如其集中趋势、方差和任何双峰性的存在)之间的联系可能缺乏清晰度。
语法
Following is the syntax of the seaborn.ecdfplot() method −
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
参数
上述方法的部分参数如下。
S.No | 参数及说明 |
---|---|
1 | x,y 在 x,y 轴上表示的变量。 |
2 | Hue 这将产生具有不同颜色的元素。 它是一个分组变量。 |
3 | Complementary 此参数用于绘制累积分布函数的互补函数。 IE; 1-CDF。 |
4 | Sta 此参数取值比例和计数。 它是要计算的分布统计量。 |
5 | palette 当也考虑色调映射时,此参数设置图的颜色。 |
6 | Hue_order 在色调语义中绘制分类变量的顺序。 |
7 | Hue_norm 用于设置色调语义的数据单位归一化范围。 提供了一对数据值。 |
8 | Weights 如果传递此参数,则这些数字将用于衡量各个数据点对累积分布的贡献。 |
9 | Log_scale 将轴刻度设置为对数,绘制的值采用对数刻度。 |
10 | Legend 布尔值。 如果为假,则不打印出语义变量的图例。 |
让我们在继续开发绘图之前加载 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()
输出
上面代码的输出如下所示。
示例 2
在这个例子中,我们将看到 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()
输出
下面这行代码的输出结果如下
将"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()
下面这行代码的输出结果如下
示例 3
seaborn.ecdfplot() 方法的互补参数用于绘制累积分布函数的互补,并使用 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()
输出
将为上面给定的代码片段绘制以下输出。
示例 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()
输出
代码片段的输出如下。