Task01:Matplotlib初相识

文章目录

  • 前言
  • 一、认识Matplotlib
  • 二、一个最简单的绘图例子
    • 1.引入库
    • 2.绘制折线图
  • 三、Figure的组成
  • 四、两种绘图接口
  • 总结
  • 参考资料


前言

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]) #绘制图像

Task01:Matplotlib初相识_第1张图片
注:jupyter notebook中使用matplotlib时会发现,代码运行后自动打印出类似 这样一段话,这是因为 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]); # 绘制图像

Task01:Matplotlib初相识_第2张图片
我们还可以通过matplotlib.pyplot方法直接在当前axes上绘
制图像,如果用户未指定axesmatplotlib会帮你自动创建一个。

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

Task01:Matplotlib初相识_第3张图片

三、Figure的组成

Task01:Matplotlib初相识_第4张图片

一个完整的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()

Task01:Matplotlib初相识_第5张图片
而如果采用第二种绘图接口,绘制同样的图,代码是这样的:

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()

Task01:Matplotlib初相识_第6张图片

总结

通过本次学习,我们认识了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

你可能感兴趣的:(python,数据可视化,matplotlib)