Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Subgráficos | Personalización de Gráficos
Visualización Definitiva con Python

Desliza para mostrar el menú

book
Subgráficos

La función subplots() de pyplot cumple este propósito específico. Se utilizó anteriormente para crear un lienzo en la primera sección, y ahora se examinará con mayor detalle.

Filas y columnas

Los argumentos más importantes de esta función son nrows y ncolumns, que establecen el número de filas y columnas en la cuadrícula de subgráficos. Por defecto, ambos son 1, por lo que se obtiene un solo gráfico (Axes).

La función subplots() devuelve un objeto Figure y bien un objeto Axes o una matriz de objetos Axes, dependiendo del tamaño de la cuadrícula.

12345
import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
copy

Se creó una cuadrícula de subgráficos de 2 por 2.

Note
Nota

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.

12345678910111213141516
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Creating a different plot for each Axes object 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()
copy

La primera fila (fila 0) contiene dos gráficos de líneas, y la segunda fila (fila 1) contiene dos diagramas de dispersión.

Dado que cada gráfico se coloca en un subgráfico separado, no se puede utilizar directamente plt.plot() o plt.scatter(). El enfoque adecuado es llamar al método correspondiente en cada objeto individual Axes.

Conversión a un arreglo 1D

También es posible utilizar el método .ravel() para convertir un arreglo 2D de Axes en un arreglo aplanado contiguo 1D:

12345678910111213141516171819
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Flattening axs to a 1D array for easier indexing axs = axs.ravel() # Creating a different plot for each Axes object 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()
copy

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 en False por defecto.

12345678910111213141516171819
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Create a 2x2 subplot grid with shared x-axis across all subplots fig, axs = plt.subplots(2, 2, sharex=True) # Flatten axs array for easier indexing axs = axs.ravel() # Plotting different data on each subplot 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()
copy

Configurar sharex=True comparte el eje x entre todos los subgráficos, lo cual es útil aquí porque todos los subgráficos utilizan los mismos valores en el eje x.

También es posible establecer sharex o sharey en 'row' para compartir el eje dentro de cada fila de subgráficos, o en 'col' para compartirlo dentro de cada columna de subgráficos.

Note
Estudiar más

Como siempre, siéntete libre de explorar más en la subplots() documentation en caso de que lo desees.

Tarea

Swipe to start coding

  1. Utilizar la función correcta para crear una cuadrícula de subgráficos.
  2. La cuadrícula debe tener 3 filas y 1 columna (especificar los dos primeros parámetros).
  3. Especificar el argumento de palabra clave más a la derecha, para que el eje x se comparta entre todos los subgráficos.
  4. Almacenar el resultado de la función para crear subgráficos en las variables fig y axs (de izquierda a derecha).
  5. Colocar el primer gráfico de líneas para data_linear en la primera fila (fila 0) de la cuadrícula de subgráficos.
  6. Colocar el segundo gráfico de líneas para data_squared en la segunda fila (fila 1) de la cuadrícula de subgráficos.
  7. Colocar el tercer gráfico de líneas para data_exp en la tercera fila (fila 2) de la cuadrícula de subgráficos.

Solución

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 6

Pregunte a AI

expand
ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

book
Subgráficos

La función subplots() de pyplot cumple este propósito específico. Se utilizó anteriormente para crear un lienzo en la primera sección, y ahora se examinará con mayor detalle.

Filas y columnas

Los argumentos más importantes de esta función son nrows y ncolumns, que establecen el número de filas y columnas en la cuadrícula de subgráficos. Por defecto, ambos son 1, por lo que se obtiene un solo gráfico (Axes).

La función subplots() devuelve un objeto Figure y bien un objeto Axes o una matriz de objetos Axes, dependiendo del tamaño de la cuadrícula.

12345
import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
copy

Se creó una cuadrícula de subgráficos de 2 por 2.

Note
Nota

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.

12345678910111213141516
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Creating a different plot for each Axes object 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()
copy

La primera fila (fila 0) contiene dos gráficos de líneas, y la segunda fila (fila 1) contiene dos diagramas de dispersión.

Dado que cada gráfico se coloca en un subgráfico separado, no se puede utilizar directamente plt.plot() o plt.scatter(). El enfoque adecuado es llamar al método correspondiente en cada objeto individual Axes.

Conversión a un arreglo 1D

También es posible utilizar el método .ravel() para convertir un arreglo 2D de Axes en un arreglo aplanado contiguo 1D:

12345678910111213141516171819
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Flattening axs to a 1D array for easier indexing axs = axs.ravel() # Creating a different plot for each Axes object 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()
copy

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 en False por defecto.

12345678910111213141516171819
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Create a 2x2 subplot grid with shared x-axis across all subplots fig, axs = plt.subplots(2, 2, sharex=True) # Flatten axs array for easier indexing axs = axs.ravel() # Plotting different data on each subplot 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()
copy

Configurar sharex=True comparte el eje x entre todos los subgráficos, lo cual es útil aquí porque todos los subgráficos utilizan los mismos valores en el eje x.

También es posible establecer sharex o sharey en 'row' para compartir el eje dentro de cada fila de subgráficos, o en 'col' para compartirlo dentro de cada columna de subgráficos.

Note
Estudiar más

Como siempre, siéntete libre de explorar más en la subplots() documentation en caso de que lo desees.

Tarea

Swipe to start coding

  1. Utilizar la función correcta para crear una cuadrícula de subgráficos.
  2. La cuadrícula debe tener 3 filas y 1 columna (especificar los dos primeros parámetros).
  3. Especificar el argumento de palabra clave más a la derecha, para que el eje x se comparta entre todos los subgráficos.
  4. Almacenar el resultado de la función para crear subgráficos en las variables fig y axs (de izquierda a derecha).
  5. Colocar el primer gráfico de líneas para data_linear en la primera fila (fila 0) de la cuadrícula de subgráficos.
  6. Colocar el segundo gráfico de líneas para data_squared en la segunda fila (fila 1) de la cuadrícula de subgráficos.
  7. Colocar el tercer gráfico de líneas para data_exp en la tercera fila (fila 2) de la cuadrícula de subgráficos.

Solución

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 6
Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
Lamentamos que algo salió mal. ¿Qué pasó?
some-alt