¿Cómo crear diferentes tamaños de subparcelas en Matplotlib?

En este artículo, aprenderemos diferentes formas de crear subparcelas de diferentes tamaños usando Matplotlib . Proporciona 3 métodos diferentes con los que podemos crear diferentes subparcelas de diferentes tamaños.

Métodos disponibles para crear subparcelas: 

  • Gridspec
  • gridspec_kw
  • subtrama2cuadrícula

1. Gridspec: GridSpec del módulo gridspec utilizado para ajustar la geometría de la cuadrícula de subtrama. Podemos usar diferentes parámetros para ajustar la forma, el tamaño, el número. de columnas y filas.   

 Código: 

Python3

# importing required libraries
import matplotlib.pyplot as plt
from matplotlib import gridspec
import numpy as np
 
# create a figure
fig = plt.figure()
 
# to change size of subplot's
# set height of each subplot as 8
fig.set_figheight(8)
 
# set width of each subplot as 8
fig.set_figwidth(8)
 
# create grid for different subplots
spec = gridspec.GridSpec(ncols=2, nrows=2,
                         width_ratios=[2, 1], wspace=0.5,
                         hspace=0.5, height_ratios=[1, 2])
 
# initializing x,y axis value
x = np.arange(0, 10, 0.1)
y = np.cos(x)
 
# ax0 will take 0th position in
# geometry(Grid we created for subplots),
# as we defined the position as "spec[0]"
ax0 = fig.add_subplot(spec[0])
ax0.plot(x, y)
 
# ax1 will take 0th position in
# geometry(Grid we created for subplots),
# as we defined the position as "spec[1]"
ax1 = fig.add_subplot(spec[1])
ax1.plot(x, y)
 
# ax2 will take 0th position in
# geometry(Grid we created for subplots),
# as we defined the position as "spec[2]"
ax2 = fig.add_subplot(spec[2])
ax2.plot(x, y)
 
# ax3 will take 0th position in
# geometry(Grid we created for subplots),
# as we defined the position as "spec[3]"
ax3 = fig.add_subplot(spec[3])
ax3.plot(x, y)
 
# display the plots
plt.show()

Producción : 

 Explicación : 

# crear cuadrícula para diferentes subparcelas
spec = gridspec.GridSpec(ncols=2, nrows=2, width_ratios=[2, 1],wspace=0.5,hspace=0.5,height_ratios=[1,2])

Aquí «gridspec.GridSpec()» creará cuadrículas para subparcelas. Podemos usar diferentes parámetros para ajustar la cuadrícula y cada tamaño de parcela.  

  • ncols: pase el número de columnas que desea en Grid. 
  • nrows: pase el número de filas que queremos en Grid para hacer subparcelas. 
  • width_ratios: establece la relación de ancho de la subtrama (ajusta el ancho de la trama). 
  • height_ratios: establece la relación de altura de la subparcela (ajusta la altura de la parcela). 
  • wspace: proporcione la cantidad de espacio vertical de «wspace» para separar las subparcelas.
  • hspace : da «hspace» la cantidad de espacio horizontal para separar las subparcelas.

2. gridspec_kw: Es un diccionario disponible dentro del método “plt.subplots()” en Matplotlib. Al pasar diferentes parámetros al diccionario, podemos ajustar la forma y el tamaño de cada subparcela. 

Código: 

Python3

# importing required libraries
import matplotlib.pyplot as plt
import numpy as np
 
# setting different parameters to adjust each grid
fig, ax = plt.subplots(nrows=2, ncols=2, figsize=(7, 7),
                       gridspec_kw={
                           'width_ratios': [3, 3],
                           'height_ratios': [3, 3],
                       'wspace': 0.4,
                       'hspace': 0.4})
 
 
# initializing x,y axis value
x = np.arange(0, 10, 0.1)
y = np.tan(x)
 
# ax[0][0] will take 0th position in
# geometry(Grid we created for subplots)
ax[0][0].plot(x, y)
 
# ax[0][0] will take 0th position in
# geometry(Grid we created for subplots)
ax[0][1].plot(x, y)
 
# ax[0][0] will take 0th position in
# geometry(Grid we created for subplots)
ax[1][0].plot(x, y)
 
# ax[0][0] will take 0th position in
# geometry(Grid we created for subplots)
ax[1][1].plot(x, y)
 
plt.show()

Producción : 

Explicación : 

# establecer diferentes parámetros para ajustar cada cuadrícula 
fig, ax = plt.subplots(nrows=2, ncols=2,figsize=(7,7), gridspec_kw={‘width_ratios’: [3, 3], ‘height_ratios’: [ 3, 3], ‘espacio w’: 0.4, ‘espacio h’: 0.4})

“gridspec_kw = {}” es un diccionario con teclas con las que podemos cambiar la forma, el tamaño y ajustar cada cuadrícula.

  • nrows: número de filas en la cuadrícula
  • ncols: número de columnas en la grilla
  • width_ratios: establece el tamaño del ancho de cada subparcela
  • height_ratios: establece el tamaño de la altura de cada subparcela
  • wspace: proporcione la cantidad de espacio vertical de «wspace» para separar las subparcelas.
  • hspace : da «hspace» la cantidad de espacio horizontal para separar las subparcelas.
  • figsize: establece el tamaño de las subparcelas.

3. subplot2grid: proporciona más flexibilidad para crear una cuadrícula en cualquier ubicación. Podemos extender la cuadrícula tanto horizontal como verticalmente con mucha facilidad.

Código: 

Python3

# importing required library
import matplotlib.pyplot as plt
import numpy as np
 
# creating grid for subplots
fig = plt.figure()
fig.set_figheight(6)
fig.set_figwidth(6)
 
ax1 = plt.subplot2grid(shape=(3, 3), loc=(0, 0), colspan=3)
ax2 = plt.subplot2grid(shape=(3, 3), loc=(1, 0), colspan=1)
ax3 = plt.subplot2grid(shape=(3, 3), loc=(1, 2), rowspan=2)
ax4 = plt.subplot2grid((3, 3), (2, 0))
ax5 = plt.subplot2grid((3, 3), (2, 1), colspan=1)
 
 
# initializing x,y axis value
x = np.arange(0, 10, 0.1)
y = np.cos(x)
 
# plotting subplots
ax1.plot(x, y)
ax1.set_title('ax1')
ax2.plot(x, y)
ax2.set_title('ax2')
ax3.plot(x, y)
ax3.set_title('ax3')
ax4.plot(x, y)
ax4.set_title('ax4')
ax5.plot(x, y)
ax5.set_title('ax5')
 
# automatically adjust padding horizontally
# as well as vertically.
plt.tight_layout()
 
# display plot
plt.show()

Producción : 

Explicación : 

ax1 = plt.subplot2grid(forma=(3, 3), loc=(0, 0), colspan=3)
ax2 = plt.subplot2grid(forma=(3, 3), loc=(1, 0), colspan= 1)
ax3 = plt.subplot2grid(forma=(3, 3), loc=(1, 2), rango de filas=2)
ax4 = plt.subplot2grid((3, 3), (2, 0))
ax5 = plt. subplot2grid((3, 3), (2, 1),colspan=1)

Aquí la forma denota el no. de filas y columnas y loc denota la ubicación geométrica de la cuadrícula. Supongamos que si estamos usando colspan = 3 en ax1, significa que estas subparcelas cubrirán 3 todas las columnas de esa fila. De manera similar, en ax2,colspan=1 significa que cubrirá 1 espacio de columna en su ubicación. En el caso de ax3,rowspan=2 significa que cubrirá el espacio de 2 filas. Si damos una entrada irregular, dará un error, por lo que le daremos el valor adecuado a colspan y rowspan.

Publicación traducida automáticamente

Artículo escrito por ronilpatil y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *