笔记目录
1. 数据可视化概述
1.1 什么是数据可视化
数据可视化是指将数据以图表的形式表示,并利用数据分析和开发工具发现其中未知信息的处理过程。

数据可视化旨在借助图形化手段,清晰有效地将数据中的各种属性和变量呈现出来,使用户可以从不同的维度观察数据,从而对数据进行更深入地观察和分析。
1.2 常见的图表类型
图表是指在屏幕中显示的、可以直观地展示统计信息、对知识挖掘和信息生动感受起关键作用的图形结构。
1.2.1 直方图
直方图,又称作质量分布图,它是由一系列高度不等的纵向条纹或线段表示数据分布的情况,一般用横轴表示数据的类型,纵轴表示分布情況。
直方图可以利用方块的高度来反映数据的差异,只适用于中小规模的数据集,不适用于大规模的数据集。
1.2.2 折线图
折线图是用直线段将各数据点连接起来而组成的图形,以折线的方式显示数据的变化趋势。
折线图可以显示随时间变化的连续数据,适用于显示在相等时间间隔下数据的趋势。
1.2.3 条形图
条形图是用宽度相同的条形的高度或者长短来表示数据多少的图形,可以横置或纵置,纵置时也称为柱形图。
1.2.4 饼图
饼图可以显示一个数据序列中各项的大小与各项总和的比例,每个数据序列具有唯一的颜色或图形,并且与图例中的颜色是相对应的。
饼图可以很清晰地反映出各数据系列的百分比情况。
1.2.5 散点图
散点图是指数据点在直角坐标系平面上的分布图,通常用于比较跨类别的数据。散点图包含的数据点越多,比较的效果就会越好。
散点图中每个坐标点的位置是由变量的值决定的,用于表示因变量随自变量而变化的大致趋势,以判断两种变量的相关性。
1.2.6 箱型图
箱形图又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情況资料的统计图。
图表类型 | 特点总结 |
---|---|
直方图 | 适于比较数据之间的多少。 |
折线图 | 反映一组数据的变化趋势。 |
条形图 | 显示各个项目之间的比较情况,和直方图有类似的作用。 |
散点图 | 显示若干数据系列中各数值之间的关系 |
箱形图 | 识别异常值方面有一定的优越性。 |
2.Matplotlib-绘制图表
2.1 通过 figure()函数创建画布
要想使用 Matplotlib绘制图表,需要先导入绘制图表的模块 pyplot,该模块提供了一种类似MATLAB的绘图方式,主要用于绘制简单或复杂的图形。
# 使用Matplotlib绘制图表,需要先导入绘制图表的模块pyplot
import matplotlib.pyplot as plt
如果要在 Jupyter Notebook中绘图,则需要增加如下命令
# 要在Jupyter Notebook中绘图,最好增加如下魔术命令:
%matplotlib inline
pyplot模块中默认有一个 Figure对象,该对象可以理解为一张空白的画布,用于容纳图表的各种组件。

data_one = np.arange(100, 150) # 生成包含100~150的数组
# 绘制data1折线图,如果传入了单个列表或数组,会将其设为Y轴序列,且自动生成X轴的序列并与Y轴具有相同的长度
plt.plot(data_one)
plt.show() # 在本机上显示图形

2.1.1 调用figure()函数构建一张新的空白画布

num:
表示图形的编号或名称。
figsize:
用于设置画布的尺寸。
facecolor:
用于设置画板的背景颜色。
edgecolor:
用于显示边框颜色。
# 创建新的空白画布,返回Figure实例
figure_obj = plt.figure()

data_two = np.arange(200, 301) # 生成包含200~300的数组
plt.figure(facecolor='gray') # 创建背景为灰色的新画布
# 通过data2绘制折线图,如果传入了单个列表或数组,会将其设为Y轴序列,
# 且自动生成X轴的序列并与Y轴具有相同的长度
plt.plot(data_two)
plt.show()

#创建宽度12英寸,高度8英寸,背景为红色的新画布
plt.figure(figsize=(12,8),facecolor='red')
plt.plot(data_two) # 通过data2绘制折线图
plt.show()

# 创建宽度12英寸,高度8英寸,图形分辨率60,背景为绿色的新画布
plt.figure(figsize=(12,8),dpi=60,facecolor='green')
plt.plot(data_two) # 通过data2绘制折线图
plt.show()

# 创建宽度12英寸,高度8英寸,图形分辨率120,背景为蓝色的新画布
plt.figure(figsize=(12,8),dpi=120,facecolor='blue' )
plt.plot(data_two) # 通过data2绘制折线图
plt.show()

2.2 通过subplot()函数创建单个子图
Figure对象允许划分为多个绘图区域,每个绘图区域都是一个Axes对象,它拥有属于自己的坐标系统,被称为子图。

2.2.1 通过subplot函数实现在画布上创建个子图

nrows, ncols:
表示子区网格的行数、列数。
index:
表示矩阵区域的索引。
subplot函数会将整个绘图区域等分为nrows(行)* ncols(列)”的矩阵区域
,之后按照从左到右、从上到下的顺序
对每个区域进行编号
。其中,位于左上角的子区域编号为1,依次递增。
nums = np.arange(0, 101) # 生成0~100的数组
# 分成2*2的矩阵区域,占用编号为1的区域,即第1行第1列的子图
plt.subplot(221)
# 在选中的子图上作图
plt.plot(nums, nums)
# 在本机上显示图形
plt.show()

nums = np.arange(0, 101) # 生成0~100的数组
# 分成2*2的矩阵区域,占用编号为1的区域,即第1行第1列的子图
plt.subplot(221)
# 在选中的子图上作图
plt.plot(nums, nums)
# 分成2*2的矩阵区域,占用编号为2的区域,即第1行第2列的子图
plt.subplot(222)
# 在选中的子图上作图
plt.plot(nums, -nums)
# 在本机上显示图形
plt.show()

nums = np.arange(0, 101) # 生成0~100的数组
# 分成2*2的矩阵区域,占用编号为1的区域,即第1行第1列的子图
plt.subplot(221)
# 在选中的子图上作图
plt.plot(nums, nums)
# 分成2*2的矩阵区域,占用编号为2的区域,即第1行第2列的子图
plt.subplot(222)
# 在选中的子图上作图
plt.plot(nums, -nums)
# 分成2*1的矩阵区域,占用编号为2的区域,即第2行的子图
plt.subplot(212)
# 在选中的子图上作图
plt.plot(nums, nums**2)
# 在本机上显示图形
plt.show()

如果 nrows、 ncols和 index这三个参数的值都小于10,则可以把它们简写为一个实数。