当前位置: 首页 > news >正文

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屏蔽了底层中画布、绘图区域的创建细节,它会持续跟踪当前的画布和绘图区域

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)展示图表。

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

相关文章:

  • LLM 优化技术(1)——Scaled-Dot-Product-Attention(SDPA)
  • AWVS中lodash如何验证
  • UE4学习笔记 FPS游戏制作33 换子弹 动画事件
  • LeetCode算法题(Go语言实现)_16
  • 【Leetcode 每日一题】2716. 最小化字符串长度
  • 23,C++——类型转换
  • AI 工作流自动化:从 RPA 到智能体编排(AI 任务拆解、工作流管理)
  • Linux服务器部署若依ruoyi-vue
  • leetcode131-分割回文串
  • [leetcode]1749. 任意子数组和的绝对值的最大值(dp)
  • 代理模式(Proxy Pattern)实现与对比
  • 珠心算之学习周期
  • 图片解释git的底层工作原理
  • Redis的Set集合
  • Reactor 事件流 vs. Spring 事件 (ApplicationEvent)
  • [cpp] cpp11--condition_variable(条件变量)
  • 【ESP32】VSCode配置ESP-IDF问题及解决方法
  • Promise的状态和方法是什么?
  • OpenHarmony子系统开发 - init启动引导组件(八)
  • 【AI编程学习之Python】第一天:Python的介绍
  • 做个网站成本/百度首页 百度一下
  • 手机网站底部广告代码/引流平台有哪些
  • 网站开发后端/网络营销sem培训
  • 免费空间建网站/网络营销服务的内容
  • 网站备案需要ftp吗/怎么宣传网站
  • 做网站客户给不了素材/站长工具关键词