数据可视化是一种将信息和数据以图形方式呈现的技术。通过使用图表、图形和地图等视觉元素,数据可视化工具提供了一种易于理解和观察数据中趋势、异常值和模式的方法。简而言之,从大量数据中获取知识是非常困难的,这就是数据可视化发挥作用的地方。无论是数值型、分类型还是混合型数据,可视化技术都有助于观察数据中的趋势、异常值或任何模式。所有这些信息都帮助数据科学家或任何领域的工作人员做出更好的决策以实现他们的目标。
众所周知,从图片和视觉中获取和保留知识的能力远远超过任何数字或文本。随着近年来大数据的发展,可视化技术变得比以往任何时候都更加重要,因为几乎不可能在不使用可视化技术的情况下从TB或PB的数据中提取任何信息。
大多数时候,数据科学家在他们的数据分析旅程中处理结构化数据,并且熟悉结构化查询语言(SQL)表的概念。SQL表以行和列的形式表示数据,使得探索和应用转换变得方便。数据可视化技术也有助于机器学习中的特征工程部分。在本文中,将讨论在Python中可以使用的各种可视化技术。
Matplotlib是一个Python2D绘图库,是最广泛使用的数据可视化库。它提供了大量的绘图API来创建各种图形,如散点图、条形图、箱线图和分布图,并支持自定义样式和注释。Matplotlib的详细文档可以在找到。
Seaborn也是一个基于Matplotlib的Python数据可视化库。它提供了一个高级接口来绘制创新和信息丰富的静态统计图表。。
Matplotlib是一个用于创建Python中数组的2D图形的库。Matplotlib是用Python编写的,并且使用Numpy数组。Seaborn是建立在Matplotlib之上的,是一个用于制作Python中优雅图表的库,并且与pandas数据框很好地集成。
要创建图形和图表,需要导入‘matplotlib.pyplot’和‘seaborn’模块。要在jupyter Notebook上显示图形,需要提供一个指令‘%matplotlib inline’。只有提供了指令,图形才会在笔记本中显示。
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
条形图是一种用于定性变量的频率图表。条形图可以用来访问数据集中最常出现和最不常出现的类别。要绘制条形图,调用seaborn库的‘barplot()’。数据框应该作为参数传递。
import seaborn as sns
import matplotlib.pyplot as plt
df = sns.load_dataset('titanic')
sns.barplot(x='who', y='fare', data=df)
plt.show()
下图显示了为每个类别创建的平均票价条形图。
直方图是一种显示一组连续变量频率分布的图表。直方图可以洞察变量的基础分布、异常值、偏斜等。要绘制直方图,调用matplotlib库的‘hist()’方法。
plt.hist(df["fare"])
以下是一个如何绘制票价直方图并理解其分布的示例。
分布或密度图描绘了数据在连续区间上的分布。密度图类似于平滑的直方图,可视化了数据在连续区间上的分布。因此,密度图也提供了可能的总体分布信息。
sns.distplot(df["fare"])
要绘制分布图,可以使用seaborn库的distplot()。
箱线图是一种用于理解数据变异性和异常值存在的数值数据的图形表示。箱线图的设计是通过识别以下描述性统计数据来构建的。
箱线图是使用IQR、最小值和最大值构建的。IQR是第三四分位数和第一四分位数之间的距离。箱子的长度相当于IQR。
box = sns.boxplot(df['fare'])
下图显示了票价的箱线图,并表明数据中有一些异常值。
在散点图中,两个变量的值沿两个轴绘制,产生的模式可以揭示变量之间是否存在相关性。散点图还有助于评估关系的强度,并找到数据中的任何异常值。
import numpy
import matplotlib.pyplot as plt
x = numpy.random.normal(5.0, 1.0, 1000)
y = numpy.random.normal(10.0, 2.0, 1000)
plt.scatter(x, y)
plt.show()
matplotlib的‘scatter()’方法可以用来绘制散点图,它接受两个变量。
如果有多个变量,绘制每对变量的散点图以理解关系是不方便的。因此,必须使用对图在单个图表中描绘关系,可以使用‘pairplot()’方法绘制。
import seaborn
import matplotlib.pyplot as plt
df = seaborn.load_dataset('tips')
seaborn.pairplot(df, hue='sex')
plt.show()
相关性用于测量两个连续随机变量x和y之间的线性关系的强度和方向。正相关意味着变量一起增加或减少。负相关意味着如果一个变量增加,另一个变量就会减少。
可以使用DataFrame的‘corr()’方法计算相关性值,并使用热图渲染。
df.corr()
dataplot = sns.heatmap(df.corr(), cmap="YlGnBu", annot=True)
plt.show()
热图的颜色图尺度显示在热图旁边。将‘annot’属性设置为‘True’会在热图的每个盒子中打印相关性值,提高热图的可读性。
描述性分析的目标是通过总结基本的统计度量和可视化来简单理解数据。Matplotlib和Seaborn是创建可视化最广泛使用的两个库。可以通过创建直方图、分布图、箱线图、散点图、对图、热图等图形来发现探索性分析中的洞察。
Q1. 数据探索和可视化中使用的工具有哪些?