Python数据可视化-第1章-数据可视化与matplotlib

教材

本书为《Python数据可视化》一书的配套内容,本章为第1章 数据可视化与matplotlib

本文主要介绍了什么是数据集可视化,数据可视化的目的,常见的数据可视化方式,如何选择正确的可视化图表,matplotlib的多种API使用以及matplotlib的层次结构等。

参考

政务可视化设计经验-图表习惯

数据可视化设计必修课(一):图表篇

一文讲透 | 大屏数据可视化图表选用指南

第1章 数据可视化与matplotlib

什么是数据可视化

数据可视化旨在借助图形化的手段,将一组数据以图形的形式表示,并利用数据分析和开发工具发现其中未知信息的处理过程。
可视化其实是一个抽象的过程,它可以简单地理解为将一个不易描述的事物形成一个可感知画面的过程,也就是从数据空间到图形空间的映射

数据可视化的过程

数据可视化目的

无论原始数据被映射为哪种图形数据,最终要达到的目的只有一个,便是准确地、高效地、全面地传递信息,进而建立起数据间的关系,使人们发现数据间的规律特征,并挖掘出有价值的信息,提高数据沟通的效率

常见的数据可视化方式

折线图
柱形图
条形图
堆积图
直方图


箱型图


饼图


散点图


气泡图
误差棒图
雷达图
统计地图
3D图表

选择正确的可视化图表

数据通常包含4种关系:比较、分布、构成和联系。

比较:比较关系主要关注数据中各类别或时间变化的情况。

分布:分布关系主要关注不同数值范围内包含多少数据的情况。

构成:构成关系主要关注各部分与整体占比的情况。

联系:联系关系主要关注两个及两个以上的变量之间关系的情况。

基于比较关系可选择的图表
基于分布关系可选择的图表
基于构成关系可选择的图表
基于联系关系可选择的图表
不同的划分方法


常见的数据可视化库

matplotlibseaborn、ggplot、bokeh、pygal、pyecharts

matplotlib库的简单使用

matplotlib库简介

matplotlib是一个由John D.Hunter等人员开发的、主要用于绘制2D图表的Python库

matplotlib支持numpy、pandas的数据结构,具有绘制丰富的图表、定制图表元素或样式的功能。 matplotlib 还可用于绘制一些3D图表

matplotlib官网提供了三种API:pyplot APIobject-oriented APIpylab API

pyplot API

pyplot API是使用pyplot模块开发的接口,该接口封装了一系列与MATLAB命令同名的函数,使用这些函数可以像使用MATLAB命令一样快速地绘制图表。

通过pyplot API绘制图表的基本思路:

(1)导入pyplot模块。

(2)调用该模块的绘图函数来绘制图表。

(3)展示图表。

pyplot API屏蔽了底层中画布、绘图区域的创建细节,它会持续跟踪当前的画布和绘图区域

python 复制代码
import numpy as np
import matplotlib.pyplot as plt     # 导入 pyplot 模块
data = np.array([1, 2, 3, 4, 5])     # 准备数据
plt.plot(data) # 在当前画布的绘图区域中绘制图表
plt.show()   # 展示图表
object-oriented API

object-oriented API是面向对象的接口,该接口封装了一系列对应图表元素的类,只有创建这些类的对象并按照隶属关系组合到一起才能完成一次完整的绘图。

通过object-oriented API绘制图表的基本思路:

(1)导入pyplot模块。

(2)创建画布(Figure类的对象)。

(3)在画布上添加绘图区域(Axes类的对象)。

(4)调用绘图方法绘制图表。

(5)展示图表。

python 复制代码
import numpy as np
import matplotlib.pyplot as plt
data = np.array([1, 2, 3, 4, 5])        # 准备数据
fig = plt.figure()                      #  创建代表画布的Figure 类的对象fig
ax = fig.add_subplot(111)               # 在画布fig上添加坐标系风格的绘图区域ax
ax.plot(data)                           #  绘制图表
plt.show()                              #  展示图表
pyplot API和 object-oriented API选择

用户在使用时可以根据自身的实际情况进行选择 ,若只是需要快速地绘制图表,可以选择pyplot API进行开发;若需要自定义图表,可以选择object-oriented API进行开发。

matplotlib所绘图形的层次结构

使用matplotlib绘制的图形主要由三层组成:容器层图像层辅助显示层

关于Canvas对象Figure对象Axes对象的结构如下图所示。

Axes对象拥有属于自己的坐标系,它可以是直角坐标系,即包含x轴和y轴的坐标系,也可以是三维坐标系(Axes的子类Axes3D对象),即包含x轴、y轴、z轴的坐标系。

相关推荐
新中地GIS开发老师7 分钟前
【Cesium入门教程】第七课:Primitive图元
arcgis·信息可视化·gis开发·webgis·地理信息系统·地理信息科学
源码方舟1 小时前
【基于ALS模型的教育视频推荐系统(Java实现)】
java·python·算法·音视频
萑澈1 小时前
2025深圳杯D题法医物证多人身份鉴定问题四万字思路
python·数学建模
Ronin-Lotus1 小时前
图像处理篇---MJPEG视频流处理
图像处理·python·opencv
请你喝好果汁6411 小时前
python_竞态条件
开发语言·python
正在走向自律1 小时前
Python 数据分析与可视化:开启数据洞察之旅(5/10)
开发语言·人工智能·python·数据挖掘·数据分析
dudly2 小时前
Python 字典键 “三变一” 之谜
开发语言·python
小明.杨2 小时前
Django 中时区的理解
后端·python·django
陈奕昆3 小时前
五、【LLaMA-Factory实战】模型部署与监控:从实验室到生产的全链路实践
开发语言·人工智能·python·llama·大模型微调
程序猿小三3 小时前
python uv的了解与使用
开发语言·python·uv