function:
matplotlib.pyplot.figure()
用来创建一个新的figure或者激活现有的figure,每次画图第一句基本都是plt.figure() 。简单学一下
matplotlib.pyplot.figure(num=None, figsize=None, dpi=None, *, facecolor=None, edgecolor=None, frameon=True, FigureClass=<class ‘matplotlib.figure.Figure’>, clear=False, **kwargs)
1. num
图形的唯一标识,合法值为整数或者一个字符串,可选。
如果已存在具有该标识符的图形,则该图形将变为活动状态并返回。如果没有具有该标识符的图形或未指定 num,则将创建一个新图形,使其变为活动状态并返回。
如果 num 是整数,则将用于 Figure.number 属性,否则将使用自动生成的整数值(从 1 开始并为每个新图形递增)。如果 num 是字符串,则图形标签和窗口标题将设置为此值。
(基本都是官网给出的,简单翻译了一下。具体看下面的例子)
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-np.pi, np.pi, 256)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)
# 创建一个新的figure,num='sin',Figure.number = 1(从1开始)
fig1 = plt.figure(num='sin')
plt.plot(x, y1)
# 创建一个新的figure,num='cos',Figure.number = 2(自动加1)
fig2 = plt.figure(num='cos')
plt.plot(x, y2)
# 创建一个新的figure,num为空, Figure.number = 3(自动加1)
fig3 = plt.figure()
plt.plot(x, y3)
# 已存在具有该标识符的图形,激活并返回,即激活fig1
# 也可以用 plt.figure(num='sin') 激活fig1
plt.figure(num=1)
plt.plot(x, y2)
# 已存在具有该标识符的图形,激活并返回,即激活fig2
# 也可以用 plt.figure(num='cos') 激活fig2
plt.figure(num=2)
plt.plot(x, y1)
plt.show()
注意:fig1和fig2的window title
2. figsize
合法值为一个元组(float, float), (default: [6.4, 4.8]) , 分别表示宽度、高度(以英寸为单位)。
int型会被转为float型
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-np.pi, np.pi, 256)
y1 = np.sin(x)
y2 = np.cos(x)
fig1 = plt.figure()
plt.plot(x, y1)
fig2 = plt.figure(figsize=(3,2))
plt.plot(x, y2)
plt.show()
3. dpi
合法值为一个float型数值。(int型会被转为float型)default: 100.0
表示图形的分辨率(以每英寸点数计算)。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-np.pi, np.pi, 256)
y1 = np.sin(x)
fig1 = plt.figure(dpi=25.0)
plt.plot(x, y1)
fig2 = plt.figure(dpi=50.0)
plt.plot(x, y1)
fig3 = plt.figure()
plt.plot(x, y1)
plt.show()
4. facecolor
合法值为颜色值,背景颜色。default: ‘white’(默认背景色为白色)。
Matplotlib可以识别以下格式:
- RGB (red, green, blue) 或 RGBA (red, green, blue, alpha)
(0.1, 0.2, 0.5) 或(0.1, 0.2, 0.5, 0.3) - 不区分大小写的十六进制 RGB 或 RGBA 字符串
‘#0f0f0f’ 或 ‘#0f0f0f80’ - 灰度值的闭区间 [0, 1] 内的浮点值的字符串表示
‘0’ as black
‘1’ as white
‘0.8’ as light gray - 一些基本颜色的单字符简写符号
‘b’ as blue
‘g’ as green
‘r’ as red
‘c’ as cyan
‘m’ as magenta
‘y’ as yellow
‘k’ as black
‘w’ as white - 不区分大小写的 X11/CSS4 颜色名称,没有空格
‘aquamarine’
‘mediumseagreen’
列出了几种常用的颜色标识格式,其他的可以参考官网
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-np.pi, np.pi, 256)
y1 = np.sin(x)
fig1 = plt.figure(facecolor='blue', figsize=(3, 1.8))
plt.plot(x, y1)
fig2 = plt.figure(facecolor='#0f0f0f', figsize=(3, 1.8))
plt.plot(x, y1)
fig3 = plt.figure(facecolor='y', figsize=(3, 1.8))
plt.plot(x, y1)
fig4 = plt.figure(facecolor='aquamarine', figsize=(3, 1.8))
plt.plot(x, y1)
fig5 = plt.figure(facecolor='0.7', figsize=(3, 1.8))
plt.plot(x, y1)
fig6 = plt.figure(facecolor=(0.1, 0.2, 0.5), figsize=(3, 1.8))
plt.plot(x, y1)
plt.show()
4. edgecolor
合法值为颜色值,边框颜色。default: ‘white’(默认边框为白色)。
5. frameon
布尔值。default: True。如果为 False,则禁止绘制图形框架。
6. FigureClass
subclass of Figure
如果设置,将创建此子类的一个实例,而不是普通的图形。
7. clear
布尔值。default: False。如果为 True 并且该图形已经存在,则将其清除。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-np.pi, np.pi, 256)
y1 = np.sin(x)
y2 = np.cos(x)
fig1 = plt.figure(num='fig1')
plt.plot(x, y1)
fig2 = plt.figure(num='fig2')
plt.plot(x, y1)
# 在激活fig1时,clear=True,会将已经绘制的图形清除
plt.figure(num='fig1', clear=True)
plt.plot(x, y2)
# 在激活fig2时,clear=False,不会将已经绘制的图形清除
plt.figure(num='fig2', clear=False)
plt.plot(x, y2)
8. layout
合法值:‘constrained’, ‘compressed’, ‘tight’, ‘none’, LayoutEngine, None
default: None
用于定位绘图元素的布局机制,以避免重叠轴装饰(标签、刻度等)。
如果要创建许多图形,请确保在未使用的图形上明确调用 pyplot.close,因为这将使 pyplot 能够正确清理内存。