📌  相关文章
📜  如何在Python中使用 Seaborn 制作 ECDF 图?

📅  最后修改于: 2022-05-13 01:54:44.603000             🧑  作者: Mango

如何在Python中使用 Seaborn 制作 ECDF 图?

先决条件: Seaborn

在本文中,我们将使用 Seaborn Library 制作 ECDF 图。

ECDF 图

  • ECDF 代表经验交换分布。更有可能使用而不是直方图来可视化数据,因为 ECDF 图直接可视化数据集的每个数据点,这使得用户可以轻松地与图进行交互。
  • 此图包含更多信息,因为它没有 bin 大小设置,这意味着它没有任何平滑参数。
  • 由于其曲线是单调递增的,因此非常适合同时比较多个分布。
  • 在 ECDF 图中,x 轴对应于变量值的范围,而 y 轴对应于小于或等于 x 轴对应值的数据点的比例。
  • 我们可以直接使用 ecdfplot()函数绘制 ECDF 图,或者我们也可以使用新 Seaborn 版本的 displot()函数绘制图。

安装:

要安装 Seaborn 库,请在命令提示符中写入以下命令。

pip install seaborn

此 ECDF plot 和 displot()函数仅在 0.11.0 或更高版本的 Seaborn 新版本中可用。如果已经安装了 Seaborn,请通过编写以下命令升级它。

pip install seaborn==0.11.0

为了更好地理解 ECDF 图。让我们绘制并使用数据集做一些示例。

循序渐进的方法:

  • 导入 seaborn 库。
  • 从 seaborn 库创建或加载数据集。
  • 选择要为其绘制 ECDF 图的列。
  • 要绘制 ECDF 图,有两种方法如下:
  • 第一种方法是使用 ecdfplot()函数直接绘制 ECDF 图,并在函数中传递您正在绘制的数据和列名。

句法:

  • 第二种方法是使用 displot()函数并传递您正在绘制绘图的数据和列,并传递 displot kind='ecdf' 的参数。

句法:

下表显示了本文中使用的参数列表。

ParameterDescription
dataData frame or numpy.ndarray
xKey vectors in data or column name on which plot is made.
yKey vectors in data or column name on which plot is made.
hueTo determine the color of the plot variable.
palette

This parameter is used to choose color when mapping the hue. 

It can be string, list, dict.

kindIt is the parameter of displot(), used to give the kind of plot we want.

方法一:使用 ecdfplot() 方法

在这种方法中,我们使用由 seaborn 提供的“练习”数据。

Python
# importing library
import seaborn as sns
  
# loading exercise dataset provided by seaborn
excr = sns.load_dataset('exercise')
  
# printing the dataset
print(excr)


Python
# importing libraries
import seaborn as sns
import matplotlib.pyplot as plt
  
# loading exercise dataset provided by seaborn
excr = sns.load_dataset('exercise')
  
# making ECDF plot 
sns.ecdfplot(data=excr,x='pulse')
  
# visualizing the plot using matplotlib.pyplot 
# show() function
plt.show()


Python
# importing libraries
import seaborn as sns
import matplotlib.pyplot as plt
  
# loading exercise dataset provided by seaborn
excr = sns.load_dataset('exercise')
  
# making ECDF plot 
sns.ecdfplot(data=excr,y='pulse')
  
# visualizing the plot using matplotlib.pyplot
# show() function
plt.show()


Python
# importing libraries
import seaborn as sns
import matplotlib.pyplot as plt
  
# loading exercise dataset provided by seaborn
excr = sns.load_dataset('exercise')
  
# making ECDF plot when we have multiple 
# distributions
sns.ecdfplot(data=excr, x='pulse', hue='kind')
  
# visualizing the plot using matplotlib.pyplot 
# show() function
plt.show()


Python
# importing library
import seaborn as sns
  
# loading diamonds dataset provided by seaborn
diam = sns.load_dataset('diamonds')
  
# printing the dataset
print(diam)


Python
# importing libraries
import seaborn as sns
import matplotlib.pyplot as plt
  
# loading diamonds dataset provided by seaborn
diam = sns.load_dataset('diamonds')
  
# making ECDF plot using displot() on depth 
# of the diamonds
sns.displot(data=diam,x='depth',kind='ecdf')
  
# visualizing the plot using matplotlib.pyplot 
# show() function
plt.show()


Python
# importing libraries
import seaborn as sns
import matplotlib.pyplot as plt
  
# loading diamonds dataset provided by seaborn
diam = sns.load_dataset('diamonds')
  
# making ECDF plot using displot() on depth
# of the diamond on the basis of cut
sns.displot(data=diam,x='depth',kind='ecdf',hue='cut')
  
# visualizing the plot using matplotlib.pyplot
# show() function
plt.show()


Python
# importing libraries
import seaborn as sns
import matplotlib.pyplot as plt
  
# loading diamonds dataset provided by seaborn
diam = sns.load_dataset('diamonds')
  
# making ECDF plot using displot() on table 
# column on the basis of cut of diamond
# setting up the color of plot by setting
# up the palette to icefire_r
sns.displot(data=diam,x='table',kind='ecdf',hue='cut',palette='icefire_r')
  
# visualizing the plot using matplotlib.pyplot
# show() function
plt.show()


输出:

示例 1:使用 seaborn 提供的运动数据集制作 ECDF 图。

Python

# importing libraries
import seaborn as sns
import matplotlib.pyplot as plt
  
# loading exercise dataset provided by seaborn
excr = sns.load_dataset('exercise')
  
# making ECDF plot 
sns.ecdfplot(data=excr,x='pulse')
  
# visualizing the plot using matplotlib.pyplot 
# show() function
plt.show()

输出:

示例 2:通过交换绘图轴制作 ECDF 绘图。

Python

# importing libraries
import seaborn as sns
import matplotlib.pyplot as plt
  
# loading exercise dataset provided by seaborn
excr = sns.load_dataset('exercise')
  
# making ECDF plot 
sns.ecdfplot(data=excr,y='pulse')
  
# visualizing the plot using matplotlib.pyplot
# show() function
plt.show()

输出:

示例 3:当我们有多个分布时制作 ECDF 图。

Python

# importing libraries
import seaborn as sns
import matplotlib.pyplot as plt
  
# loading exercise dataset provided by seaborn
excr = sns.load_dataset('exercise')
  
# making ECDF plot when we have multiple 
# distributions
sns.ecdfplot(data=excr, x='pulse', hue='kind')
  
# visualizing the plot using matplotlib.pyplot 
# show() function
plt.show()

输出:

上图显示了人们在休息、步行、跑步等种类方面的脉率分布。

方法 2:使用 displot() 方法

在这种方法中,我们使用由 seaborn 提供的“钻石”数据。

Python

# importing library
import seaborn as sns
  
# loading diamonds dataset provided by seaborn
diam = sns.load_dataset('diamonds')
  
# printing the dataset
print(diam)

输出:

示例 1:在由 seaborn 提供的企鹅数据集上使用 displot() 绘制 ECDF 图。

Python

# importing libraries
import seaborn as sns
import matplotlib.pyplot as plt
  
# loading diamonds dataset provided by seaborn
diam = sns.load_dataset('diamonds')
  
# making ECDF plot using displot() on depth 
# of the diamonds
sns.displot(data=diam,x='depth',kind='ecdf')
  
# visualizing the plot using matplotlib.pyplot 
# show() function
plt.show()

输出:

示例 2:当我们有多个默认设置的分布时,使用 displot() 绘制 ECDF 图。

Python

# importing libraries
import seaborn as sns
import matplotlib.pyplot as plt
  
# loading diamonds dataset provided by seaborn
diam = sns.load_dataset('diamonds')
  
# making ECDF plot using displot() on depth
# of the diamond on the basis of cut
sns.displot(data=diam,x='depth',kind='ecdf',hue='cut')
  
# visualizing the plot using matplotlib.pyplot
# show() function
plt.show()

输出:

上图显示了基于切工的钻石深度。

示例 3:通过设置颜色使用 displot() 绘制 ECDF 图。

Python

# importing libraries
import seaborn as sns
import matplotlib.pyplot as plt
  
# loading diamonds dataset provided by seaborn
diam = sns.load_dataset('diamonds')
  
# making ECDF plot using displot() on table 
# column on the basis of cut of diamond
# setting up the color of plot by setting
# up the palette to icefire_r
sns.displot(data=diam,x='table',kind='ecdf',hue='cut',palette='icefire_r')
  
# visualizing the plot using matplotlib.pyplot
# show() function
plt.show()

输出:

我们可以将调色板设置为 Accent_r、magma_r、plasma、plasma_r 等,根据我们的选择,它还有许多其他选项可用。