如何使用 Seaborn histplot 制作带有密度图的直方图?
直方图是表示一组连续数据分布的可视化工具。在直方图中,数据被划分为一组区间或区间(通常在 x 轴上)以及落入每个区间的数据点计数,对应于该区间上方的条形高度。这些 bin 的宽度可能相等,也可能不同,但相邻(没有间隙)。
密度图(也称为核密度图)是另一种用于评估数据分布的可视化工具。它可以被认为是一个平滑的直方图。密度图的峰值有助于显示值在区间内的集中位置。有多种平滑技术。核密度估计(KDE) 是用于平滑直方图的技术之一。
Seaborn 是一个基于Python中 matplotlib 的数据可视化库。在本文中,我们将使用seaborn.histplot()绘制带有密度图的直方图。
Syntax: seaborn.histplot(data, x, y, hue, stat, bins, binwidth, discrete, kde, log_scale)
Parameters:-
- data: input data in the form of Dataframe or Numpy array
- x, y (optional): key of the data to be positioned on the x and y axes respectively
- hue (optional): semantic data key which is mapped to determine the color of plot elements
- stat (optional): count, frequency, density or probability
Return: This method returns the matplotlib axes with the plot drawn on it.
示例 1:我们将使用 random.randn() 方法生成数据。
Python3
# Import necessary libraries
import seaborn as sns
import numpy as np
import pandas as pd
# Genearting dataset of random numbers
np.random.seed(1)
num_var = np.random.randn(1000)
num_var = pd.Series(num_var, name = "Numerical Variable")
# Plot histogram
sns.histplot(data = num_var, kde = True)
Python3
# Import necessary libraries
import numpy as np
import pandas as pd
import seaborn as sns
# Load dataset
penguins = sns.load_dataset("penguins")
# Plot histogram
sns.histplot(data = penguins, x = "body_mass_g", kde = True)
Python3
# Plot Histogram
sns.histplot(data = penguins, x = "body_mass_g", kde = True, hue = "species")
Python3
# Import necessary libraries
import numpy as np
import pandas as pd
import seaborn as sns
# Load dataset
tips = sns.load_dataset("tips")
# Plot histogram
sns.histplot(data = tips, x = "size", stat = "probability", discrete = True)
输出:
默认情况下, seaborn.histplot的kde参数设置为 false。因此,通过将kde设置为 true,计算核密度估计以平滑分布并绘制密度图线。
示例 2:让我们在本示例中使用来自 Seaborn 库的样本数据集 Penguins。该数据集显示了不同岛屿上不同企鹅物种的特征(体重、鳍状肢长度、喙长度性别)。
蟒蛇3
# Import necessary libraries
import numpy as np
import pandas as pd
import seaborn as sns
# Load dataset
penguins = sns.load_dataset("penguins")
# Plot histogram
sns.histplot(data = penguins, x = "body_mass_g", kde = True)
输出:
我们还可以在一个图中可视化多个物种的体重分布。色调参数映射语义变量“物种”。
蟒蛇3
# Plot Histogram
sns.histplot(data = penguins, x = "body_mass_g", kde = True, hue = "species")
输出:
示例 3:此示例使用来自 Seaborn 库的示例数据集 Tips,该数据集记录了餐厅服务器收到的提示。它包括收到的小费总账单或餐费、顾客的性别、顾客聚会的规模、日期、时间以及聚会上是否有吸烟者。此示例中的直方图不是数据点的计数,而是标准化的,以便每个条的高度显示概率。
蟒蛇3
# Import necessary libraries
import numpy as np
import pandas as pd
import seaborn as sns
# Load dataset
tips = sns.load_dataset("tips")
# Plot histogram
sns.histplot(data = tips, x = "size", stat = "probability", discrete = True)
输出: