本期,我们继续学习Seaborn中的第三种图形——Histograms(直方图),对应在Seaborn中的函数为histplot。Histograms直方图是数据集分布的图形表示。它们可以揭示数据的重要特征,例如:数据是否服从正态分布、偏向一侧或具有多个峰值。它们显示数据的不同区间或“区间”内的观测值频率或计数。直方图的 x 轴表示数据集中的值范围,分为等距的间隔或分箱;y轴表示落在每个条形框内的观测值的频率或计数。直方图中每个条形的高度对应于该区间中的观测值数。一、iris数据集简介
Iris数据集是一个非常著名的多变量数据集,由英国统计学家和生物学家罗纳德·费舍尔(Ronald Fisher)在1936年引入。它通常用于展示分类算法和聚类分析。Iris数据集包含了150个样本,每个样本有4个特征:萼片长度、萼片宽度、花瓣长度和花瓣宽度。这些样本分别属于3个不同的鸢尾花种类(Iris setosa、Iris virginica 和 Iris versicolor),每个种类各有50个样本。数据集的特征1.萼片长度 (Sepal Length): 以厘米为单位测量的花萼的长度。2.萼片宽度 (Sepal Width): 以厘米为单位测量的花萼的宽度。3.花瓣长度 (Petal Length): 以厘米为单位测量的花瓣的长度。4.花瓣宽度 (Petal Width): 以厘米为单位测量的花瓣的宽度。5.种类 (Species): 样本所属的鸢尾花种类。
具体数据集的链接如下:
通过百度网盘分享的文件:iris.csv
链接:https://pan.baidu.com/s/1we5Zb80xXecqY5Rhdqs8gA
提取码:6666
二、跟着iris数据集学histplot
2.1 导入数据集
import pandas as pdimport seaborn as snsimport matplotlib.pyplot as plt # 设置中文字体plt.rcParams['font.family'] = 'SimHei' df=pd.read_csv('iris.csv') df
一个150行、5列的数据集,无缺失数据。
2.2 简单的直方图我们用Seaborn中的histplot对sepal_width这一列简单做个直方图,看一下萼片宽度的大致分布。
# Histogram with KDEsns.histplot(data=df, x='sepal_width', kde=True)plt.title('Histogram with KDE')plt.tight_layout()plt.show()
这里,我们也用kde做了直方图的加窗平滑,运行结果为:
从图中,我们可以看到萼片宽度从2到4.5的简单分布。KDE曲线也证实它非常接近正态分布。
2.3 多柱直方图
#多柱直方图sns.histplot(data=df)
多柱直方图显示了不同颜色的萼片宽度、萼片长度、花瓣宽度和花瓣长度的分布。可以看到,histplot直接过滤掉了最后一列:Species,因为这一列没有数值 。
2.3 重叠直方图
sns.histplot(data=df, x='petal_length', hue='species')
从重叠直方图中可以看到,Virginica植物的花瓣长度要比setosa和versicolor植物大得多。
2.4 堆叠直方图
#堆叠直方图sns.histplot(df, x='sepal_length', hue='species', multiple='stack',linewidth=0.5)
堆叠直方图显示了不同花种萼片长度的差异。virginica植物的萼片长度比setosa植物大得多。
三、小结
本期,我们介绍了有关Seaborn中绘制直方图的工具函数histplot,当然,Seaborn的histplot函数也提供了许多定制选项,比如:可以轻松地添加核密度估计(通过设置kde=True,参加2.1),改变直方图的颜色和样式等,你可以根据自己的需求调整这些参数来优化你的图表。
当然,想要了解更多关于histplot的功能,可以参见官方文档:
https://seaborn.pydata.org/generated/seaborn.histplot.html
通过使用Seaborn的histplot函数,我们可以快速而有效地创建出既美观又信息丰富的直方图,这不仅有助于我们更好地理解数据,还能在报告和展示中提供直观的视觉支持。下期见