【Seaborn-驯化】一文学会seaborn中的直方图使用技巧:histplot
本次修炼方法请往下查看
🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地!
🎇 免费获取相关内容文档关注:微信公众号,发送 pandas 即可获取
🎇 相关内容视频讲解 B站
🎓 博主简介:AI算法驯化师,混迹多个大厂搜索、推荐、广告、数据分析、数据挖掘岗位 个人申请专利40+,熟练掌握机器、深度学习等各类应用算法原理和项目实战经验。
🔧 技术专长: 在机器学习、搜索、广告、推荐、CV、NLP、多模态、数据分析等算法相关领域有丰富的项目实战经验。已累计为求职、科研、学习等需求提供近千次有偿|无偿定制化服务,助力多位小伙伴在学习、求职、工作上少走弯路、提高效率,近一年好评率100% 。
📝 博客风采: 积极分享关于机器学习、深度学习、数据分析、NLP、PyTorch、Python、Linux、工作、项目总结相关的实用内容。
下滑查看解决方法
🎯 1. 基本介绍
直方图是一种用于展示数据分布的统计图表,它通过将数据分成若干个连续的区间(通常称为“桶”或“bins”),并计算每个区间内的数据点数量来展示数据的分布情况。Seaborn 的 histplot 函数提供了一种灵活且美观的方式来绘制直方图。
💡 2. 原理介绍
直方图的生成过程涉及以下步骤:
- 数据分桶:将数据范围划分为多个连续的非重叠区间。
计数:计算每个桶内的数据点数量。
绘制:将每个桶的计数以条形的形式展示出来。
直方图的高度(或长度)表示每个桶内的计数,而桶的宽度则对应数据的区间范围。
🔍 3. 画图实践
3.1 数据准备
我们通过seaborn自带的数据对其进行相关的画图,具体的导入数据代码如下所示:
import seaborn as sns
import matplotlib.pyplot as plt
# 使用Seaborn内置的tips数据集
tips = sns.load_dataset("tips")
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.50 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
... ... ... ... ... ... ... ...
239 29.03 5.92 Male No Sat Dinner 3
240 27.18 2.00 Female Yes Sat Dinner 2
241 22.67 2.00 Male Yes Sat Dinner 2
242 17.82 1.75 Male No Sat Dinner 2
243 18.78 3.00 Female No Thur Dinner 2
3.2 画图实践
我们将展示了总账单金额的分布情况,其中x轴为账单金额,y轴为每个金额区间的频数。kde=True 参数添加了核密度估计曲线,显示了数据的密度分布,具体的代码如下所示:
# 绘制直方图,展示总账单金额的分布
sns.histplot(tips['total_bill'], bins=20, kde=True)
# 添加标题和轴标签
plt.title("Distribution of Total Bill")
plt.xlabel("Total Bill")
plt.ylabel("Frequency")
# 显示图表
plt.show()
有时候我们不想展示柱状图可以设置为,具体的代码如下所示:
# 只绘制核密度曲线,不绘制直返图
ax = sns.distplot(x, rug=True, hist=False)
🔍 4. 注意事项
- histplot 函数的 bins 参数用于指定桶的数量,可以根据数据的分布和需求进行调整。
kde 参数用于控制是否绘制核密度估计曲线,这有助于更平滑地展示数据分布。 - 可以通过 color 参数自定义直方图的颜色,使图表更加美观。
- 在对大数据集使用直方图时,可能需要调整 bins 参数以避免图表过于拥挤。
🔍 5. 总结
Seaborn 的 histplot 函数提供了一种直观且美观的方式来绘制直方图,帮助我们探索和理解数据的分布情况。通过本博客的代码示例,我们学习了如何使用 histplot 绘制直方图,并展示了如何通过直方图分析数据分布。希望这篇博客能够帮助你更好地利用直方图进行数据探索和分析。