matplotlib之plt.figure

简介

matplotlib.pyplot.subplots:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.figure.html

创建一个图形(figure)对象。

1
2
3
4
5
6
7
8
9
10
def figure(num=None,  # autoincrement if None, else integer from 1-N
           figsize=None,  # defaults to rc figure.figsize
           dpi=None,  # defaults to rc figure.dpi
           facecolor=None,  # defaults to rc figure.facecolor
           edgecolor=None,  # defaults to rc figure.edgecolor
           frameon=True,
           FigureClass=Figure,
           clear=False,
           **kwargs
           );

参数

(1)num: 图像的编号(名称),参数没有提供时,会自动的维持一个自增的数字名称。当提供了参数时,如果此figure存在,则返回此对象,如果不存在,则创建并返回figure

(2)figsize: 整数型的元组格式,默认为 None,以元组形式(宽,高)提供宽高的大小,单位为英尺,若没有提供,则大小为 rc figure.figsize 定义的值

(3)dpi: 整数,默认为 None(默认值 rc figure.dpi.),设置 figure 的分辨率

(4)facecolor: 背景颜色,默认为 rc figure.facecolor. 的值

(5)edgecolor: 边框颜色,默认为 rc figure.edgecolor. 的值

(6)frameon: 是否显示绘制图框。

(7)FigureClass: 从matplotlib.figure.Figure派生的类,可用于自定义Figure实例

(8)clear:bool,可选,默认为False。如果为True并且已经存在figure,那么它将被清除

基本使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(1, 100, 100)
y1 = np.random.randint(20, 60, size=100)
y2 = np.random.randint(30, 70, size=100)
y3 = np.random.randint(50, 90, size=100)

plt.figure(num="111", figsize=(6, 4), facecolor="pink", edgecolor="green")
plt.plot(x, y1, c="red", label="y1_low")
plt.plot(x, y2, c="blue", label="y2_middle")
plt.plot(x, y3, c="yellow", label="y3_high")
plt.legend(loc="best")
plt.show()

matplotlib_figure

figure维护

figure 的重复利用能大大节约时间,但是 matplotlib 维护的 figure 有数量上限(RuntimeWarning: More than 20 figures have been opened.)。并且,不断的创建新的 figure 实例,很容易造成内存泄漏,而应合理的复用,能大大的提高运行速度。此外,在某些情况下,不清理 figure 将有可能造成在第一幅中 plot 的线再次出现在第二幅图中。

以下包括:

  • plt.cla() # 清除axes,即当前 figure 中的活动的axes,但其他axes保持不变。
  • plt.clf() # 清除当前 figure 的所有axes,但是不关闭这个 window,所以能继续复用于其他的 plot。
  • plt.close() # 关闭 window,如果没有指定,则指当前 window。
1
2
3
4
5
6
7
8
9
10
11
Close a figure window.

``close()`` by itself closes the current figure

``close(fig)`` closes the `~.Figure` instance *fig*

``close(num)`` closes the figure number *num*

``close(name)`` where *name* is a string, closes figure with that label

``close('all')`` closes all the figure windows

Powered by AppBlog.CN     浙ICP备14037229号

Copyright © 2012 - 2020 APP开发技术博客 All Rights Reserved.

访客数 : | 访问量 :