Notas de estudio de Python para el sexagésimo quinto día
Matplotlib dibuja múltiples figuras
Podemos usar los métodos subplot() y subplots() en pyplot para dibujar múltiples subtramas.
El método subplot() necesita especificar la posición al dibujar. El método subplots() puede generar varios a la vez. Al llamar, solo necesita llamar al hacha del objeto generado.
subtrama()
subplot(nrows, ncols, index, **kwargs)
subplot(pos, **kwargs)
subplot(**kwargs)
subplot(ax)
La función anterior divide toda el área de dibujo en nrows filas y ncols columnas, y luego numera cada subárea 1...N de izquierda a derecha y de arriba a abajo. La subárea superior izquierda se numera con 1 y el área inferior derecha está numerado N, el número se puede configurar a través del índice de parámetros.
Establecer numRows = 1 y numCols = 2 significa dibujar el gráfico en un área de imagen de 1 x 2. Las coordenadas correspondientes son:
(1, 1), (1, 2)
plotNum = 1, las coordenadas representadas son (1, 1), es decir, el subgrafo de la primera fila y la primera columna.
plotNum = 2, las coordenadas representadas son (1, 2), es decir, la subtrama en la primera fila y segunda columna.
# 实例 1
import matplotlib.pyplot as plt
import numpy as np
#plot 1:
xpoints = np.array([0, 6])
ypoints = np.array([0, 100])
plt.subplot(1, 2, 1)
plt.plot(xpoints,ypoints)
plt.title("plot 1")
#plot 2:
x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])
plt.subplot(1, 2, 2)
plt.plot(x,y)
plt.title("plot 2")
plt.suptitle("RUNOOB subplot Test")
plt.show()
Establecer numRows = 2 y numCols = 2 significa dibujar el gráfico en un área de imagen de 2 x 2. Las coordenadas correspondientes son:
(1, 1), (1, 2)
(2, 1), (2, 2)
plotNum = 1, las coordenadas representadas son (1, 1), es decir, el subgrafo de la primera fila y la primera columna.
plotNum = 2, las coordenadas representadas son (1, 2), es decir, la subtrama en la primera fila y segunda columna.
plotNum = 3, las coordenadas representadas son (2, 1), que es el subgrafo de la segunda fila y la primera columna.
plotNum = 4, las coordenadas representadas son (2, 2), es decir, la subtrama en la segunda fila y segunda columna.
# 实例 2
import matplotlib.pyplot as plt
import numpy as np
#plot 1:
x = np.array([0, 6])
y = np.array([0, 100])
plt.subplot(2, 2, 1)
plt.plot(x,y)
plt.title("plot 1")
#plot 2:
x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])
plt.subplot(2, 2, 2)
plt.plot(x,y)
plt.title("plot 2")
#plot 3:
x = np.array([1, 2, 3, 4])
y = np.array([3, 5, 7, 9])
plt.subplot(2, 2, 3)
plt.plot(x,y)
plt.title("plot 3")
#plot 4:
x = np.array([1, 2, 3, 4])
y = np.array([4, 5, 6, 7])
plt.subplot(2, 2, 4)
plt.plot(x,y)
plt.title("plot 4")
plt.suptitle("RUNOOB subplot Test")
plt.show()
subtramas()
El formato de sintaxis del método subplots() es el siguiente:
matplotlib.pyplot.subplots(nrows=1, ncols=1, *, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw)
Descripción de parámetros:
- nrows: el valor predeterminado es 1, establece el número de filas del gráfico.
- ncols: el valor predeterminado es 1, establece el número de columnas del gráfico.
- sharex, sharey: establece si los ejes x e y comparten atributos; el valor predeterminado es falso y se puede configurar en 'ninguno', 'todos', 'fila' o 'col'. Falso o ninguno El eje x o el eje y de cada subtrama es independiente, Verdadero o 'todos': todas las subtramas comparten el eje x o el eje y, 'fila' establece que cada fila de la subtrama comparta un eje x o y -axis, 'col': configura cada columna del subgráfico para que comparta un eje x o un eje y.
- squeeze: valor booleano, por defecto es True, lo que indica que se extraen dimensiones adicionales del objeto Axes (eje) devuelto. Para N 1 o 1 N subgrafos, se devuelve una matriz unidimensional. Para N*M, N>1 y M >1 devuelve una matriz bidimensional. Si se establece en False, no se realiza ninguna extrusión y se devuelve una matriz 2D de instancias de Axes, incluso si termina siendo 1x1.
- subplot_kw: opcional, tipo diccionario. Pase las claves del diccionario a add_subplot() para crear cada subtrama.
- gridspec_kw: opcional, tipo diccionario. Pase las claves del diccionario al constructor GridSpec para crear el subgrafo y colocarlo en la cuadrícula.
- **fig_kw: pasa argumentos de palabras clave detallados a la función figure().
# 实例 3
import matplotlib.pyplot as plt
import numpy as np
# 创建一些测试数据 -- 图1
x = np.linspace(0, 2*np.pi, 400)
y = np.sin(x**2)
# 创建一个画像和子图 -- 图2
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Simple plot')
# 创建两个子图 -- 图3
f, (ax1, ax2) = plt.subplots(1, 2, sharey=True)
ax1.plot(x, y)
ax1.set_title('Sharing Y axis')
ax2.scatter(x, y)
# 创建四个子图 -- 图4
fig, axs = plt.subplots(2, 2, subplot_kw=dict(projection="polar"))
axs[0, 0].plot(x, y)
axs[1, 1].scatter(x, y)
# 共享 x 轴
plt.subplots(2, 2, sharex='col')
# 共享 y 轴
plt.subplots(2, 2, sharey='row')
# 共享 x 轴和 y 轴
plt.subplots(2, 2, sharex='all', sharey='all')
# 这个也是共享 x 轴和 y 轴
plt.subplots(2, 2, sharex=True, sharey=True)
# 创建标识为 10 的图,已经存在的则删除
fig, ax = plt.subplots(num=10, clear=True)
plt.show()
posdata
Lo que estás aprendiendo hoy es cómo dibujar múltiples gráficos usando Python Matplotlib. Un resumen del contenido de aprendizaje de hoy:
- Matplotlib dibuja múltiples figuras
- subtrama()
- subtramas()