【数据操作与可视化】Matplotlib绘图-基础功能

【数据操作与可视化】Matplotlib绘图-基础功能

1、Matplotlib简介

Matplotlib是一个Python的绘图库,它提供了一个类似于MATLAB的绘图框架,并且支持多种输出格式,包括SVG、PDF、PS、EPS等。Matplotlib使得用户可以轻松地创建各种静态、动态和交互式的图表。Matplotlib是数据科学、工程和科学计算领域中常用的库之一,它帮助用户以可视化的方式探索和展示数据。

可视化是在整个机器学习和AI训练的关键辅助工具,可以清晰的理解数据,从而调整我们的分析方法。如查看变化趋势,梯度下降效果,可视化理解数据集特征等。

2、matplotlib的绘图流程

在使用matplotlib进行图形绘制时,有两种绘图模式。

一种是简易快速绘图,也就是说只要给出需要绘图用的数据,即可使用少量代码快速绘制图形。这种情况下,图形全部使用默认的绘图参数进行创建,适合想快速通过图形了解数据特征的情况。

另一种是标准绘图。在标准绘图模式下,我们可以自由创建画布以及子图,添加更加丰富的绘图元素,适合大部分数据分析绘图的情况。

matplotlib的绘图流程如下:

3、matplotlib的初始化设置

通常,我们在使用matplotlib时,需要在代码中先导入如下的初始化代码:

python 复制代码
# 导入绘图相关的库(见开头)
import matplotlib.pyplot as plt
# 让matplotlib的图表在jupyternotebook中直接显示
%matplotlib inline
# 解决中文乱码问题(仅针对windows电脑)
plt.rcParams['font.sans-serif']='SimHei'
# 解决负号无法显示问题
plt.rcParams['axes.unicode_minus']=False
# 让图表变成矢量形式,显示更清晰
%config InlineBackend.figure_format = 'svg'
4、可视化图表的组成元素介绍

一个正规的可视化图表如下图所示,该表包含了一个图表中的基本组成元素。

画布

画布就是字面意思,你首先需要找到一块"布",即绘图界面,然后在这块"布"上绘制图表。

坐标系

画布是图表的最大概念,在一块画布上可以建立多个坐标系,坐标系又可以分为直角坐标系、球坐标系和极坐标系三种,其中直角坐标系最常用。

坐标轴 坐标轴是在坐标系中的概念,主要有x轴和y轴(一般简单的可视化均为二维),一组x/y值用来唯一确定坐标系上的一个点。x轴也称横轴,就是上图中的月份;y轴也称纵轴,就是上图中的注册人数。在上图的坐标系中,通过月份和注册人数可以唯一确定一个点。

坐标轴标题 坐标轴标题就是x轴和y轴的名称,在上图中我们把x轴称为月份,把y轴称为注册人数。

图表标题 图表标题是用来说明整个图表核心主题的,上图中的核心主题就是在1---9月中每月的注册人数。

数据标签 数据标签用于展示图表中的数值。上图为折线图,是由不同月份和注册人数确定不同的唯一点,然后将这些点连接起来就是一个折线图,折线图是一条线,如果将每个点对应的数值显示出来,这些数值就是数据标签。

数据表 数据表在图表下方,它以表格的形式将图表中坐标轴的值展示出来。

网格线 网格线是坐标轴的延伸,通过网格线可以更加清晰地看到每一点大概在什么位置,值大概是多少。 图例图例一般位于图表的下方或右方,用来说明不同的符号或颜色所代表的不同内容与指标,有助于认清图。上图中只有一条折线,所以图例的作用不是很大,但是当一个图表中有多条折线图,或者包含不同形状的混合时,图例的作用就显而易见了。你可以很快辨别出哪个颜色的折线代表哪个指标。

5、快速绘图

利用matplotlib快速绘图的步骤如下:

yaml 复制代码
# 给定一组x和y的值快速绘图
x = [1,2,3,4,5,6]
y = [1123, 3423, 3544, 1348, 2897, 3021]
plt.plot(x, y)    # 默认是画折线图
plt.show()

当然,也可以利用Numpy来生成连续的X,给Y一个函数方程,来实现绘图:

python 复制代码
from matplotlib import pyplot as plt
import numpy as np
# 指定中文使用的字体和正常符号显示
from pylab import mpl
mpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = False
x = np.arange(1, 100, 0.5)  # 为 X 赋值
# Y与X设置各类函数关系
# y = 3*x*x + 5*x + 6
# y = [5**i for i in x]
# y = [math.log(i, 5) for i in x]
# y = -2*x + 5
# y = x*x
y = np.sin(x)
# 传递图表参数并生成图表
plt.plot(x, y, color='blue', linewidth=2, label='图例')
plt.xlabel('x轴名称')
plt.ylabel('y轴名称')
plt.title('Y与X的函数关系图')
# plt.legend()        # 显示图例
plt.savefig("test.png")     # 保存图表,只能在show之前
plt.show()
相关推荐
笨鸟先飞,勤能补拙4 小时前
AI 赋能网络安全:技术全景、成熟度评估与实战案例
人工智能·python·安全·web安全·网络安全·sqlite·github
长和信泰光伏储能5 小时前
京津冀光伏发电:绿色能源的未来之路
python·能源
浦信仿真大讲堂5 小时前
从重复操作到自动化闭环:如何让 CST 与 Python 真正协同起来
python·自动化·cst·仿真软件·达索软件
Gu Gu Study5 小时前
ScoutLoop开放域深度研究引擎(agent的初步设计想法)
人工智能·python
卷无止境6 小时前
写代码这件事,到底该讲究点什么?
后端·python
卷无止境6 小时前
循环复杂度到底在算什么,Python 代码怎么才能写得让人一看就懂
后端·python
lpfasd1236 小时前
MediaCrawler 项目深度分析
chrome·python·chrome devtools
Dxy12393102167 小时前
Python项目打包成EXE完整教程(PyInstaller实战避坑)
开发语言·python
bamb007 小时前
一个项目带你入门AI应用开发01
python
0566468 小时前
Python康复训练——常用标准库
开发语言·python·学习