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轴的坐标系。

相关推荐
全栈派森2 小时前
BI数据开发全攻略:数据仓库、模型搭建与指标处理
数据仓库·python·程序人生
铁手飞鹰3 小时前
从零复现论文:深度学习域适应1
linux·pytorch·python·深度学习·ubuntu·ai·迁移学习
薰衣草23336 小时前
力扣——位运算
python·算法·leetcode
两只程序猿6 小时前
数据可视化 | Violin Plot小提琴图Python实现 数据分布密度可视化科研图表
开发语言·python·信息可视化
泰迪智能科技017 小时前
图书推荐丨Web数据可视化(ECharts 5)(微课版)
前端·信息可视化·echarts
大模型真好玩7 小时前
架构大突破! DeepSeek-V3.2发布,五分钟速通DeepSeek-V3.2核心特性
人工智能·python·deepseek
玩转C语言和数据结构8 小时前
Jupyter Notebook下载安装使用教程(附安装包,图文并茂)
ide·python·jupyter·anaconda·jupyternotebook·anaconda下载·anaconda安装包
2401_841495648 小时前
【自然语言处理】Universal Transformer(UT)模型
人工智能·python·深度学习·算法·自然语言处理·transformer·ut
CodeCraft Studio8 小时前
借助Aspose.Email,使用 Python 读取 Outlook MSG 文件
前端·python·outlook·aspose·email·msg·python读取msg文件
赵谨言8 小时前
基于python数据挖据的教学监控系统的设计与应用
开发语言·经验分享·python