Subgráficos
La función subplots() de pyplot se utiliza para crear múltiples gráficos en una sola figura. Ya se ha visto al crear un lienzo; ahora se examina con mayor detalle.
Filas y columnas
Los argumentos clave son nrows y ncolumns, que definen la cuadrícula de subgráficos. Por defecto, ambos son 1, lo que produce un solo objeto Axes.
subplots() devuelve un objeto Figure y uno o varios objetos Axes, dependiendo de la disposición.
12345import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
Se creó una cuadrícula de subgráficos de 2 por 2.
Dado que hay varios subgráficos, subplots devuelve un arreglo de objetos Axes, que normalmente se almacena en una variable llamada axs (el singular ax se utiliza para un solo gráfico).
En este caso, axs es un arreglo bidimensional, por lo que se necesita tanto un índice de fila como de columna para acceder a un subgráfico específico.
1234567891011121314import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear**2 fig, axs = plt.subplots(2, 2) axs[0, 0].plot(data_linear) axs[0, 1].plot(data_squared) axs[1, 0].scatter(data_linear, data_linear) axs[1, 1].scatter(data_linear, data_squared) plt.show()
La primera fila contiene dos gráficos de líneas; la segunda fila contiene dos diagramas de dispersión.
Cada gráfico debe dibujarse utilizando el método del objeto Axes correspondiente, no plt.plot() ni plt.scatter().
Conversión a un arreglo 1D
Puede aplanar el arreglo 2D de Axes usando .ravel() para simplificar la indexación:
123456789fig, axs = plt.subplots(2, 2) axs = axs.ravel() axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
Con una matriz de 2x2, axs.ravel() la convierte en un arreglo unidimensional que contiene cuatro elementos.
Compartir un eje
La función subplots() también tiene los parámetros sharex y sharey. Estos controlan si los ejes x o y se comparten entre los subgráficos. Ambos están configurados como False por defecto.
123456789fig, axs = plt.subplots(2, 2, sharex=True) axs = axs.ravel() axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
Configurar sharex=True comparte el eje x entre todas las subgráficas.
También se puede pasar 'row' o 'col' para compartir los ejes solo dentro de filas o columnas.
Como siempre, siéntase libre de explorar más en la
subplots() documentación si lo desea.
Swipe to start coding
- Utilizar la función adecuada para crear una cuadrícula de subgráficos.
- La cuadrícula debe tener 3 filas y 1 columna (especificar los dos primeros parámetros).
- Especificar el argumento de palabra clave más a la derecha para que el eje x se comparta entre todos los subgráficos.
- Almacenar el resultado de la función para crear subgráficos en las variables
figyaxs(de izquierda a derecha). - Colocar el primer gráfico de líneas para
data_linearen la primera fila (fila0) de la cuadrícula de subgráficos. - Colocar el segundo gráfico de líneas para
data_squareden la segunda fila (fila1) de la cuadrícula de subgráficos. - Colocar el tercer gráfico de líneas para
data_expen la tercera fila (fila2) de la cuadrícula de subgráficos.
Solución
¡Gracias por tus comentarios!
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Can you explain more about how to access individual subplots in the 2D array?
What happens if I create a grid with more rows or columns?
How do I customize the appearance of each subplot?
Awesome!
Completion rate improved to 3.85
Subgráficos
Desliza para mostrar el menú
La función subplots() de pyplot se utiliza para crear múltiples gráficos en una sola figura. Ya se ha visto al crear un lienzo; ahora se examina con mayor detalle.
Filas y columnas
Los argumentos clave son nrows y ncolumns, que definen la cuadrícula de subgráficos. Por defecto, ambos son 1, lo que produce un solo objeto Axes.
subplots() devuelve un objeto Figure y uno o varios objetos Axes, dependiendo de la disposición.
12345import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
Se creó una cuadrícula de subgráficos de 2 por 2.
Dado que hay varios subgráficos, subplots devuelve un arreglo de objetos Axes, que normalmente se almacena en una variable llamada axs (el singular ax se utiliza para un solo gráfico).
En este caso, axs es un arreglo bidimensional, por lo que se necesita tanto un índice de fila como de columna para acceder a un subgráfico específico.
1234567891011121314import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear**2 fig, axs = plt.subplots(2, 2) axs[0, 0].plot(data_linear) axs[0, 1].plot(data_squared) axs[1, 0].scatter(data_linear, data_linear) axs[1, 1].scatter(data_linear, data_squared) plt.show()
La primera fila contiene dos gráficos de líneas; la segunda fila contiene dos diagramas de dispersión.
Cada gráfico debe dibujarse utilizando el método del objeto Axes correspondiente, no plt.plot() ni plt.scatter().
Conversión a un arreglo 1D
Puede aplanar el arreglo 2D de Axes usando .ravel() para simplificar la indexación:
123456789fig, axs = plt.subplots(2, 2) axs = axs.ravel() axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
Con una matriz de 2x2, axs.ravel() la convierte en un arreglo unidimensional que contiene cuatro elementos.
Compartir un eje
La función subplots() también tiene los parámetros sharex y sharey. Estos controlan si los ejes x o y se comparten entre los subgráficos. Ambos están configurados como False por defecto.
123456789fig, axs = plt.subplots(2, 2, sharex=True) axs = axs.ravel() axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
Configurar sharex=True comparte el eje x entre todas las subgráficas.
También se puede pasar 'row' o 'col' para compartir los ejes solo dentro de filas o columnas.
Como siempre, siéntase libre de explorar más en la
subplots() documentación si lo desea.
Swipe to start coding
- Utilizar la función adecuada para crear una cuadrícula de subgráficos.
- La cuadrícula debe tener 3 filas y 1 columna (especificar los dos primeros parámetros).
- Especificar el argumento de palabra clave más a la derecha para que el eje x se comparta entre todos los subgráficos.
- Almacenar el resultado de la función para crear subgráficos en las variables
figyaxs(de izquierda a derecha). - Colocar el primer gráfico de líneas para
data_linearen la primera fila (fila0) de la cuadrícula de subgráficos. - Colocar el segundo gráfico de líneas para
data_squareden la segunda fila (fila1) de la cuadrícula de subgráficos. - Colocar el tercer gráfico de líneas para
data_expen la tercera fila (fila2) de la cuadrícula de subgráficos.
Solución
¡Gracias por tus comentarios!
single