Task01:Matplotlib初相识

本文介绍了Python数据可视化库Matplotlib的基础知识,包括其在数据分析中的重要性,展示了如何绘制简单折线图,详细解释了Figure的构成,并对比了两种主要的绘图接口——OO模式和pyplot接口。通过实例代码,读者可以了解如何创建和操作figure、axes,以及设置图形属性,为后续的数据可视化学习打下基础。
摘要由CSDN通过智能技术生成


前言

MatplotlibPython中最受欢迎的数据可视化软件包之一,支持跨平台运行,它是Python常用的 **2D **绘图库,同时它也提供了一部分 3D 绘图接口。Matplotlib 通常与 NumPyPandas 一起使用,是数据分析中不可或缺的重要工具之一。

一、认识Matplotlib

MatplotlibPython数据可视化库中的泰斗,它已经成为python中公认的数据可视化工具,我们所熟知的pandasseaborn的绘图接口其实也是基于matplotlib所做的高级封装。

Matplotlib可用于Python脚本,PythonIPython ShellJupyter notebookWeb应用程序服务器和各种图形用户界面工具包等。

为了对matplotlib有更好的理解,让我们从一些最基本的概念开始认识它,再逐渐过渡到一些高级技巧中。

二、一个最简单的绘图例子

Matplotlib的图像是画在figure(如windows,jupyter窗体)上的,每一个figure又包含了一个或多个axes(一个可以指定坐标系的子区域)。最简单的创建figure以及axes的方式是通过pyplot.subplots命令,创建axes以后,可以使用Axes.plot绘制最简单的折线图。

在绘图之前,首先查看自己机器上的Matplotlib版本,建议升级到V3.3.3(2020年12月),否则可能会报错!

1.引入库

import matplotlib.pyplot as plt
import numpy as np

2.绘制折线图

fig, ax = plt.subplots() #创建一个包含一个axes的figure 
ax.plot([1, 2, 3, 4], [1, 4, 2, 3]) #绘制图像

在这里插入图片描述
注:jupyter notebook中使用matplotlib时会发现,代码运行后自动打印出类似<matplotlib.lines.Line2D at 0x23155916dc0> 这样一段话,这是因为 matplotlib的绘图代码默认打印出最后一个对象。如果不想显示这句话,有以下三种方法:
1. 在代码块最后加一个分号;
2. 在代码块最后加一句plt.show();
3. 在绘图时将绘图对象显式赋值给一个变量,如将plt.plot([1, 2, 3, 4]) 改成line =plt.plot([1, 2, 3, 4])。

使用第一种方法,可得到如下结果图:
fig, ax = plt.subplots() # 创建一个包含一个axes的figure 
ax.plot([1, 2, 3, 4], [1, 4, 2, 3]); # 绘制图像

在这里插入图片描述
我们还可以通过matplotlib.pyplot方法直接在当前axes上绘
制图像,如果用户未指定axesmatplotlib会帮你自动创建一个。

line =plt.plot([1, 2, 3, 4], [1, 4, 2, 3])

在这里插入图片描述

三、Figure的组成

在这里插入图片描述

一个完整的matplotlib图像通常会包括以下四个层级,这些层级也被称为容器(container)。
Figure:顶层级,用来容纳所有绘图元素;
Axesmatplotlib的核心,容纳大量的元素来构造一幅幅子图,一个figure可以由一个或多个子图组成;
Axisaxes的下属层级,用于处理所有和坐标轴,网格有关的元素;
Tickaxis的下属层级,用来处理所有和刻度有关的元素。

四、两种绘图接口

matplotlib提供了两种最常用的绘图接口:
1、 显式创建figureaxes,在上面调用绘图方法,也被称为OO模式(object-oriented style)
2、依赖pyplot自动创建figureaxes,并绘图。

使用第一种绘图接口,如下所示:

x = np.linspace(0, 2, 100) 
#numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
#在指定的间隔内返回均匀间隔的数字。
#返回num均匀分布的样本,在[start, stop]。
#这个区间的端点可以任意的被排除在外。
fig, ax = plt.subplots() 
ax.plot(x, x, label='linear') 
ax.plot(x, x**2, label='quadratic') 
ax.plot(x, x**3, label='cubic') 
ax.set_xlabel('x label') 
ax.set_ylabel('y label') 
ax.set_title("Simple Plot") 
ax.legend() 
plt.show()

在这里插入图片描述
而如果采用第二种绘图接口,绘制同样的图,代码是这样的:

x = np.linspace(0, 2, 100) 
plt.plot(x, x, label='linear') 
plt.plot(x, x**2, label='quadratic') 
plt.plot(x, x**3, label='cubic') 
plt.xlabel('x label') 
plt.ylabel('y label') 
plt.title("Simple Plot") 
plt.legend() 
plt.show()

在这里插入图片描述

总结

通过本次学习,我们认识了Matplotlib,并以一个简单的折线图为例开启了绘图之旅,以及Figure的组成、两种绘图接口。

参考资料

[1].http://c.biancheng.net/matplotlib/
[2].https://matplotlib.org/stable/tutorials/introductory/usage.html
[3].https://blog.csdn.net/you_are_my_dream/article/details/53493752

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Never give up

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值