Python数据分析之数据可视化(数据可视化概述、Matplotlib、Seaborn、Bokeh)学习笔记

这篇博客详细介绍了Python数据可视化的基础知识,包括数据可视化的目的和常见图表类型。接着深入讲解了Matplotlib库,介绍了如何创建画布、子图、添加标签和绘制各种图表。然后探讨了Seaborn库,用于绘制统计图形,如distplot、jointplot和pairplot。最后,简要介绍了交互式可视化库Bokeh的基础用法。
摘要由CSDN通过智能技术生成

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,则可以把它们简写为一个实数。

2.3 通过subplots()函数创建多个子图

2.3.1 通过subplots函数进行实现一次性创建一组子图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liangpi_hero

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值