Matplotlib技巧系列01—简介

Matplotlib技巧01-简介

官网传送门:
https://links.jianshu.com/go?to=http%3A%2F%2Fmatplotlib.org%2F

Matplotlib是一个Python 2D绘图库,可以生成各种硬拷贝格式的出版物质量的图片和跨平台的交互环境。Matplotlib中的所有内容都组织在一个层次结构中。

  • 1)层次结构的顶部是由matplotlib.pyplot模块提供的“状态机环境”。在这一层,简单的函数用于向当前图中的当前轴添加绘图元素(行、图像、文本等)。Pyplot的状态机环境的机制类似于MATLAB,有MATLAB经验的同志们应该最熟悉它。
  • 2)层次结构中的下一层是面向对象接口的第一层,其中pyplot仅用于图形创建等少数功能,用户显式地创建并跟踪图形和坐标轴对象。在这个级别,用户使用pyplot创建图形,通过这些图形,可以创建一个或多个轴对象。这些轴对象用于大多数绘图操作。
  • 3)对于更多的控制(比如在GUI应用程序中嵌入matplotlib绘图),pyplot级别可能会完全取消,只留下一个纯粹的面向对象方法。

在python中导入matplotlib.pyplot模块一般方法是:

import matplotlib.pyplot as plt

下面介绍几个概念:

1.figure(图)
图形跟踪所有的子轴、少量的“特殊”artist(标题、图形描述等等)和画布。(不要太担心画布,因为它是真正绘制图形的对象,所以它很重要,但是作为用户,它对大家来说或多或少是不可见的)。一个图形可以有任意数量的轴,但要想有用,至少要有一个轴。
例如下面代码:

fig = plt.figure()  # 创建一个空的、没有axis的图
fig.suptitle('this is a figure')  # 增加一个标题

fig2, ax = plt.subplots(2, 2)  # 带有2x2轴网格的图形

plt.show()

运行结果是:
在这里插入图片描述
在这里插入图片描述
2.axes
英语解释为axis的复数,这是大家认为的“一个图”,它是图像与数据空间的区域。一个给定的图形可以包含多个轴,但是一个给定的axes对象只能在一个图形中。axes包含两个(在3D情况下是三个)axis对象(注意axes和axis之间的区别),它们负责限制数据(也可以通过set_xlim()和set_ylim()轴方法的set来控制数据极限)。每个轴都有一个标题(通过set_title()设置)、一个x标签(通过set_xlabel()设置)和一个y标签(通过set_ylabel()进行设置)。

3.axis
和Numpy函数内参数axis不同,matplotlib中的axis是类似于数字行的对象。它们负责设置图形限制并生成刻度(轴上的标记)和ticklabel(标记刻度的字符串)。刻度的位置由Locator对象确定,而ticklabel字符串由formatter进行格式化。正确的Locator对象和formatter对象的组合可以很好地控制标记的位置和标签。

4.artist
基本上你在图上看到的一切都是artist(甚至是图、轴和轴对象)。这包括文本对象、Line2D对象、集合对象、补丁对象……(你懂的)。当图形被渲染时,所有的艺术家都被绘制到画布上。大多数artist被绑在axes上;这样的artist不能由多个轴共享,也不能从一个轴移动到另一个轴。

下面这张图可以对整个‘图’内容有一个大致了解:
在这里插入图片描述
我们可以通过指令对蓝字部分的格式进行控制,下面举一个简单的例子:
在下面的示例中,第一次调用plt.plot创建坐标轴,然后调用plt.plot在相同的轴上添加额外的行,然后plt.xlabel, plt.ylabel, plt.title 和plt.legend 设置轴标签和标题,并添加图例。
代码为:

x = np.linspace(0, 1, 100)

plt.plot(x, x, label='linear')
plt.plot(x, x**2+1, label='quadratic function')
plt.plot(x, x**3+2, label='cubic function')

plt.xlabel('x label')
plt.ylabel('y label')

plt.title("Simple Plot")

plt.legend()

plt.show()

结果为:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45582028/article/details/103835578
今日推荐