探索性数据分析 EDA 之最常用的10个可视化图表案例
创作时间:
作者:
@小白创作中心
探索性数据分析 EDA 之最常用的10个可视化图表案例
引用
CSDN
1.
https://blog.csdn.net/fengshi_fengshi/article/details/142797439
探索性数据分析(EDA)是数据分析过程中非常重要的一个环节,通过可视化和统计方法帮助我们理解数据的内在结构、检查数据质量、选择数据特征,并为后续的统计检验或建模提供基础。本文将基于一个消费数据集,介绍在EDA中常用的10个可视化图表及其应用场景。
数据集简介
本文使用的数据集为tips消费数据集,包含以下属性:
- 总金额(total_bill)
- 消费金额(tip)
- 是否吸烟(smoker)
- 时间段(time)
- 就餐人数(size)
1. 条形图
条形图用于显示分类变量的分布,通过可视化数据集中每个类别的频率或计数,可以快速看出各类别的大小。
import seaborn as sns
import matplotlib.pyplot as plt
data = pd.read_csv('tips.csv')
order = ['Thur', 'Fri', 'Sat', 'Sun']
ax = sns.countplot(x='day', hue='day', data=data, order=order)
for bar in ax.patches:
height = bar.get_height()
ax.text(bar.get_x() + bar.get_width() / 2, height,
f'{height}', ha='center', va='bottom')
plt.title('Count of Tips by Day')
plt.show()
2. 折线图
折线图主要用于展示数据随时间或其他变量变化的趋势,通过分析现有数据的趋势,可以进行未来值的预测,帮助决策制定。
import seaborn as sns
import matplotlib.pyplot as plt
data = sns.load_dataset('tips')
data.sort_values(by='total_bill', inplace=True)
plt.plot(data['total_bill'].values, data['tip'].values)
plt.title('Line Plot of Tip Over Total Bill')
plt.show()
3. 散点图
散点图用于展示两个变量之间的关系,可以通过观察点的分布,直观地显示两个变量之间的关系,比如正相关、负相关或无相关性。
import seaborn as sns
import matplotlib.pyplot as plt
data = sns.load_dataset('tips')
sns.scatterplot(x='total_bill', y='tip', data=data)
plt.title('Scatter Plot of Total Bill vs. Tip')
plt.show()
4. 箱线图
箱线图用于展示数据分布特征的统计图表,显示数据中的平均值、中位数、分位数和离群值。比较多个变量的分布。可以识别扩散的数值变量,检测数据集中潜在的异常值。
import seaborn as sns
import matplotlib.pyplot as plt
data = pd.read_csv('tips.csv')
order = ['Thur', 'Fri', 'Sat', 'Sun']
sns.boxplot(x='day', y='total_bill', hue='day', data=data, order=order)
plt.title('Box Plot of Total Bill by Day')
plt.show()
5. 密度图
密度图用于显示数据分布的可视化工具,能够清晰地展示数据的概率密度,帮助分析者直观理解数据的分布情况。
import seaborn as sns
import matplotlib.pyplot as plt
data = sns.load_dataset('tips')
sns.kdeplot(data['total_bill'], shade=True)
plt.title('Density Plot of Total Bill')
plt.show()
6. 饼图
饼图用于展示各部分与整体之间的比例关系。
import matplotlib.pyplot as plt
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
colors = ['gold', 'lightcoral', 'lightskyblue', 'lightgreen']
explode = (0.1, 0, 0, 0)
plt.figure(figsize=(8, 6))
plt.pie(sizes, explode=explode, labels=labels, colors=colors,
autopct='%1.1f%%', shadow=True, startangle=140)
plt.axis('equal')
plt.title('饼图示例')
plt.show()
7. 热图
热图主要用于展示数据矩阵的值,通过颜色的深浅来表示数值的大小。
import seaborn as sns
import matplotlib.pyplot as plt
data = sns.load_dataset('tips')
data = data[['total_bill', 'tip', 'size']]
correlation_matrix = data.corr()
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm')
plt.title('Correlation Heatmap')
plt.show()
8. 小提琴图
小提琴图用于展示数据的分布情况,可以可视化一个数值变量在不同类别中的分布,非常适合比较多个组的数据分布。
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")
sns.violinplot(x='day', hue='day', y='total_bill', data=tips)
plt.title('Violin Plot of Total Bill by Day')
plt.show()
9. 子图
为了进行对比,可以在同一图中并排比较多个子图。
import seaborn as sns
import matplotlib.pyplot as plt
data = sns.load_dataset('tips')
plt.figure(figsize=(12, 8))
plt.subplot(2, 2, 1)
sns.scatterplot(x='total_bill', y='tip', data=data)
plt.title('Scatter Plot of Total Bill vs Tip')
plt.subplot(2, 2, 2)
sns.boxplot(x='day', y='total_bill', hue='day', data=data)
plt.title('Box Plot of Total Bill by Day')
plt.subplot(2, 2, 3)
sns.barplot(x='day', y='total_bill', hue='day', data=data)
plt.title('Bar Plot of Total Bill by Day')
plt.subplot(2, 2, 4)
sns.violinplot(x='day', hue='day', y='total_bill', data=tips)
plt.title('Violin Plot of Total Bill by Day')
plt.tight_layout()
plt.show()
10. 关系图
pairplot 是 Seaborn 库中的一个非常有用的函数,用于可视化数据集中所有数值特征之间的关系。
import seaborn as sns
import matplotlib.pyplot as plt
data = sns.load_dataset('tips')
sns.pairplot(data, hue='day')
plt.suptitle('Pairplot of Numerical Variables by Day', y=1.02)
plt.show()
通过这些可视化图表,我们可以更好地理解数据的分布、汇总统计、变量和异常值之间的关系,从而得出有价值的洞见,辅助策略决策。
热门推荐
皮薄馅大的萝卜丝菜蟒:比饺子简单,营养美味
国家级非遗祁门蛇伤疗法,年救680余人创98.6%治愈率
持续6天,洛杉矶山火暴露城市规划与应急缺陷
全球极端野火事件20年增一倍,与气候变化同步加剧
洛杉矶山火致10死18万疏散,政客纷争中暴露治理危机
《我的世界》PS5原生版发布:4K高清+60帧流畅体验
《我的世界》生存模式完全攻略:从零开始的冒险之旅
《我的世界》新版本引发玩家热议,跑酷社区表示“无法接受”
《我的世界》生存技巧大揭秘:从基础到进阶的全面指南
《自然和弦》:家庭聚会必备桌游
婺源月亮湾:入冬雪景之旅,探寻当地美食的绝美两日游攻略
探秘文昌月亮湾:深度游海南文昌月亮湾全景攻略
2025年喀纳斯湖风景区旅游指南
别让“孝顺”成为枷锁:打破代际间的不自由传递
从铸炮到观星:明清宫廷中80位西方传教士的科技人生
清代火器使用率超50%,影视作品中清军装备亟待纠偏
中老年如何正确打太极拳
从1988年首例DNA破案到如今:中国亲子鉴定技术30年发展路
20%人群潜藏风险,专家详解心肌桥预防要点
女性社交互动真的能治愈心灵吗?
不同文化下女性社交互动的奥秘
IVUS和OCT在冠状动脉钙化病变诊断中显身手
激光点痣后皮肤再生的秘密
祛痣后皮肤护理,你做对了吗?
于蕾三度执掌春晚,语言类节目能否实现逆袭?
一文读懂海尔洗衣机故障:代码解析与维修指南
内心强大让伴侣慌?这样保持关系平衡
儿童补牙后需等待30分钟再进食,这些食物要避免
遗传和变异的原理
高情商聊天术,职场女性必备神器