EDA中常用的九个可视化图表介绍和代码示例
创始人
2025-07-09 16:11:05
0

探索性数据分析(EDA)是数据科学家用来分析和调查数据集并总结其主要特征的一种方法,通常采用数据可视化技术。我们可以说EDA是通过创建可视化和摘要来调查和理解数据集的过程。EDA是我们询问数据问题的一种方式,可以找出关于数据的所有信息,并理解它为什么是这样的(即识别趋势、模式、异常等)。

在这篇文章中我们介绍EDA中常用的9个图表,并且针对每个图表给出代码示例。

1、条形图/计数图

显示分类变量的分布。可视化数据集中每个类别的频率或计数。

import seaborn as sns
 import matplotlib.pyplot as plt
 
 
 data = sns.load_dataset('tips')
 sns.countplot(x='day', data=data)
 plt.title('Count of Tips by Day')
 plt.show()

2、箱线图

显示数据中的平均值、中位数、分位数和离群值。比较多个变量的分布。可以识别扩散的数值变量,检测数据集中潜在的异常值。

import seaborn as sns
 import matplotlib.pyplot as plt
 
 data = sns.load_dataset('tips')
 sns.boxplot(x='day', y='total_bill', data=data)
 plt.title('Box Plot of Total Bill by Day')
 plt.show()

3、密度图

作为数据科学家,建议使用密度图而不是直方图,因为我们猜测最佳的装箱数量是有问题的。

密度图可以可视化连续变量的分布。识别数据中的峰值、低谷和总体模式。了解分布的形状并比较多个变量的分布。

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()

4、散点图

探索两个连续变量之间的关系。识别数据中的模式、相关性或集群。

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()

5、线型图

在时间序列中显示趋势或模式。表示连续区间内两个连续变量之间的关系,还可以比较连续范围内变量的变化。

import seaborn as sns
 import matplotlib.pyplot as plt
 
 data = sns.load_dataset('tips')
 sns.lineplot(x='total_bill', y='tip', data=data)
 plt.title('Line Plot of Tip Over Total Bill')
 plt.show()

6、热图

显示数值变量的相关矩阵。识别大型数据集中的模式和关系。

import seaborn as sns
 import matplotlib.pyplot as plt
 
 data = sns.load_dataset('tips')
 correlation_matrix = data.corr()
 sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm')
 plt.title('Correlation Heatmap')
 plt.show()

7、小提琴图

结合了箱形图和核密度图的特点,可以可视化一个数值变量在不同类别中的分布。

import seaborn as sns
 import matplotlib.pyplot as plt
 
 data = sns.load_dataset('tips')
 sns.violinplot(x='day', y='total_bill', data=data)
 plt.title('Violin Plot of Total Bill by Day')
 plt.show()

8、子图

为了进行对比,可以在同一图中并排比较多个子图。

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', data=data)
 plt.title('Box Plot of Total Bill by Day')
 
 plt.subplot(2, 2, 3)
 sns.barplot(x='day', y='total_bill', data=data)
 plt.title('Bar Plot of Total Bill by Day')
 
 plt.subplot(2, 2, 4)
 sns.histplot(data['total_bill'], kde=True)
 plt.title('Histogram of Total Bill')
 
 plt.tight_layout()
 plt.show()

9、关系图

Pairplot在中文中没有特定的翻译,我这里把它称作关系图,因为它是用于绘制变量之间的关系,通过对多个变量进行可视化来探索它们之间的相关性和趋势。

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()

总结

以上就是在EDA中常用的图表,可以看到seaborn是可以非常好用的工具,它基于matplotlib但是更加美观,并且需要编写的代码更少,所以在EDA需要简单的出图的时候可以优先使用它。

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
P2P的自白|我不生产内容,我... 现在一提起P2P,人们就会联想到正在被有关部门“围剿”的互联网理财服务。×租宝事件使得劳...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...