python之matplotlib (1 介绍及基本用法)

介绍

matplotlib是Python中的一个绘图库,它提供了一个类似于 MATLAB 的绘图系统。使用matplotlib你可以生成图表、直方图、功率谱、条形图、错误图、散点图等。matplotlib广泛用于数据可视化领域,是 Python 中最著名的绘图库之一。

同样matplotlib的安装也和numpy和pandas一样,具体语言如下:(在电脑终端执行)

python 复制代码
python -m pip install --user matplotlib

基本用法

利用matplotlib绘图方法很多,网上的方法也是各种各样,起初我看到这些方法很头疼,并不明白为何这样画。其实,对于各种绘图方法来说,只需掌握其内在的逻辑你就会明白不同方法的内涵。

我总结了网上绘图常见的四种方法,如下:

python 复制代码
import matplotlib.pyplot as plt

x=[1,4,9,16,25]

#第一种方法
plt.figure()
plt.plot(x)

#第二种方法
fig=plt.figure()
ax=plt.gca()
ax.plot(x)

#第三种方法
fig=plt.figure()
ax=fig.add_axes([0.1,0.1,0.7,0.7])
ax.plot(x)

#第四种方法
fig,ax=plt.subplots()
ax.plot(x)

plt.show()

这四种方法起到的作用大致上是相通的。

第一种方法:plt.figure()是起到了开辟一个窗口的作用,这个窗口里面什么都没有,仅仅是一个窗口。plt.plot()是在这个窗口中进行画图,在画图之前系统**默认给它分配了(即默认创建)**一个二维坐标轴平面,这个图像最终在这个坐标轴中呈现。

第二种方法:同样,plt.figure()开辟了一个窗口,同时将这个窗口赋给了变量fig。plt.gca()(get current axes)的作用是在当前的窗口中捕捉坐标轴平面,将这个坐标轴平面赋给变量ax。(如果当前窗口中没有,那就建立一个新的)然后在ax中进行作图,即ax.plot()

第三种方法:第三种方法和第二种方法很相似,ax=fig.add_axes([ ])的作用就是创建一个坐标轴,第一种方法在这里是省掉了,系统默认创建了一个,第二种虽说是多了一句但是是捕捉坐标轴,因为本身就没有所以归根结底还是创建了一个,这种方法就是明着说要创建一个坐标轴。

第四种方法:这个方法比较简单省事,一句话干了两句话的事。plt.subplots()是建立了一个窗口,而此窗口并未简单的彼窗口,subplots可以在这个窗口中布置子图的格局,换句话说如果你想在一个窗口中画多个子图,每个子图既独立存在又互不干扰,它就能实现这个功能。但在这里,我们并未指定它的参数,所以它默认是创建了一个子图,即整个窗口就画一个图。那么它的返回值fig指的是整个窗口,ax是所有的子图的坐标轴平面体系。因为你只创建了一个,所以ax在这里就是一个坐标轴平面,ax.plot()也就是在这仅有的一个坐标轴平面内画图。

归根结底,在matplotlib中画图可以分为四部分:1.创建窗口 2.创建坐标轴 3.画图 4.修剪

如果subplots多个子图,见下:

python 复制代码
import matplotlib.pyplot as plt

x=[1,4,9,16,25]

fig,ax=plt.subplots(2,2)
ax[0,0].plot(x)
plt.show()

我们建立了一个2×2布局的窗口,这个窗口是fig,而里面的每一个坐标轴平面是ax,我们在ax的第一个坐标轴中画图即:ax[0,0].plot(x)

相关推荐
奔波霸的伶俐虫43 分钟前
jeecg框架@Dict不生效问题
开发语言·python
徐赛俊1 小时前
# 自动定时运行Python爬虫脚本教程(Windows任务计划程序)
windows·爬虫·python
程序员秘密基地2 小时前
基于html,css,jquery,django,lstm,cnn,tensorflow,bert,推荐算法,mysql数据库
python·cnn·tensorflow·lstm·推荐算法
YY_TJJ2 小时前
8.4 Java Web(Maven P50-P57)
java·开发语言·maven
技术炼丹人2 小时前
从RNN为什么长依赖遗忘到注意力机制的解决方案以及并行
人工智能·python·算法
hqxstudying3 小时前
Java开发时出现的问题---语言特性与基础机制陷阱
java·jvm·python
仪器科学与传感技术博士3 小时前
python:机器学习中的分类与回归怎么理解
python·机器学习·分类
pusue_the_sun3 小时前
从零开始搞定类与对象(中)
开发语言·c++·学习
CodeCraft Studio3 小时前
使用 Aspose.OCR 将图像文本转换为可编辑文本
java·人工智能·python·ocr·.net·aspose·ocr工具
allenXer3 小时前
Flask全栈入门:打造区块链艺术品交易所
python·flask·区块链