No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Subplot

3/18
Recursos

Subplot permite crear gráficos dentro de una gráfica. Esto lo hace a través de una matriz de gráficos y se puede acceder a ellos a través de índices:

Cómo acceder a la matriz de gráficos en Subplot

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0,5,11)
y = x ** 2

Parámetros en Subplot

Los parámetros de subplot funcionan:

Filas Columnas Index

Crear fila y dos columnas

  • Crear una matriz de gráficos de una fila y dos columnas
plt.subplot(1,2,1) # Grafico 1
plt.plot(x,y, 'r--') 

plt.subplot(1,2,2)  # Gráfico 2
plt.pie(y)
plt.show()
grafico 1.JPG
  • Agregar diferentes Plot al gráfico
plt.subplot(1,2,1)
plt.plot(x,y, 'r--') # Plot 1
plt.plot(y,x, 'b:') #Plot 2

plt.subplot(1,2,2)
plt.pie(y)
plt.show()
grafico2.JPG
  • Invertir la matriz de los gráficos
plt.subplot(2,1,1) #Grafico 1
plt.plot(x,y,'r--') #Plot 1
plt.plot(y,x,'b:')  #Plot 2

plt.subplot(2,1,2) #Grafico 2
plt.pie(y)         #Plot 1  
plt.show()
grafica3.JPG

Aportes 30

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Escribí mal una linea y matplotlib decidió empezar a crear su propio metaverso 🤣

Estaba revisando como hacer otro tipo de gráficos, tal vez algunos no digan nada, pero me pareció entretenido buscar nuevas formas de visualización de datos.

⛩️ Estructura de Subplot

jugando un poco encontre que se puede modificar con el tema de las filas y columnas para tener graficos de distintos tamaños!

plt.subplot(2,2,1)
plt.plot(x,y, '')
plt.subplot(1,2,2)
plt.triplot(z,x)
plt.subplot(2,2,3)
plt.triplot(z,x)
plt.show()

En este caso hicimos un gráfico que contiene 2 filas y 3 columnas, por lo que vamos a tener un gráfico compuesto por 6 gráficos.

Con los índices indicamos donde queremos que cada gráfico se ejecute y los índices se ordenan de la siguiente forma:

1 2 3

4 5 6


x= [ 1,2,3,4,5,7,9,14]
y= [ 1,4,8,6,5,10,9,11]

plt.subplot(2,3,1)
plt.plot(x,y) # Gráfico de lineas
plt.subplot(2,3,2)
plt.plot(x,y,‘o’) # Gráfico de lineas con puntos
plt.subplot(2,3,3)
plt.pie(x) # Gráfico de torta
plt.subplot(2,3,4)
plt.boxplot(x) # Gráfico de cajas
plt.subplot(2,3,5)
plt.bar(x,y) # Gráfico de barras
plt.subplot(2,3,6)
plt.hist(x) # Gráfico histograma

RESUMEN

Subplot

Subplot permite crear graficos dentro de un grafico. Esto lo hace a traves de una matriz de graficos y se puede acceder a ellos a traves de los indices

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0,5,11)
y = x**2
  • Crear una matriz de graficos de una fila y dos columnas
plt.subplot(1,2,1)   #grafico 1
plt.plot(x,y,'r--')

plt.subplot(1,2,2)   #grafico 2
plt.hist(y)
plt.show()
  • Añadir varios plot a un mismo grafico
plt.subplot(1,2,1) #Grafico 1
plt.plot(x,y,'r--') #Plot 1
plt.plot(y,x,'b:')  #Plot 2

plt.subplot(1,2,2) #Grafico 2
plt.pie(y)         #Plot 1        
plt.show()
  • Crear una matriz de grafico de dos filas y una columna
plt.subplot(2,1,1) #Grafico 1
plt.plot(x,y,'r--') #Plot 1
plt.plot(y,x,'b:')  #Plot 2

plt.subplot(2,1,2) #Grafico 2
plt.pie(y)         #Plot 1        
plt.show()

plt.sublot( CantidadFilas , CantidadColumnas , Indice )

Lo bueno de estos cursos es que uno puede ponerse a improvisar a su gusto y probar cosas que le pueden gustar más o menos. Una vez más, creo que es más sencillo trabajar, así que con Excel.

Me gustaría hacer un aporte: En matplotlib.pyplot está el método subplot() y está el método subplots(): Ambos, aunque pueden ser usados para arrojar resultados similares, se diferencian en cómo se ingresan los parámetros. El segundo de ellos (subplots()) está pensado en los principios del POO: Aquí un artículo donde se describen sus principales diferencias:

https://towardsdatascience.com/plt-subplot-or-plt-subplots-understanding-state-based-vs-object-oriented-programming-in-pyplot-4ba0c7283f5d

Realmente uno queda fascinado con este Excel con ESTEROIDES.

este curso esta de lujo !!! gracias profe, gracias platzi

Aporto un gráfico que hice, explicando cómo funciona plt.subplot() ![](https://static.platzi.com/media/user_upload/image-29dafda6-7d78-4d6f-a6ac-8b5cfd5827e5.jpg)

¿Que es subplot? subplot es una función que permite crear una o varias sub-figuras dentro de una figura principal donde cada sub-figura (subplot) es esencialmente una figura separada en sí misma, que se puede usar para trazar diferentes tipos de gráficos o datos.

  plt.subplot(1,2,1)
  plt.hist(values,bins=15);
  plt.subplot(1,2,2)
  plt.hist(values,bins=5);

Muy interesante la clase. Para los colores se puede utilizar en los gráficos la sentencia color=’’ y entre las comillas se puede usar códigos hexadimales o rgb.

# Ejemplo Ander
x = np.linspace(0,100,500)
y = x**3
z = np.arange(0,5,1)

plt.subplot(2,2,1)
plt.plot(x,y,'r--')

plt.subplot(2,2,2)
plt.hist(y, color='#45B39D')

plt.subplot(2,2,3)
plt.pie(z)

plt.subplot(2,2,4)
plt.scatter(x,y)

plt.show()

Información resumida de esta clase
#EstudiantesDePlatzi

  • Subplot es la funcionalidad que me permite generar las visualizaciones que yo desee

  • Los parámetros que van dentro de subplot son: ( filas, columnas, index )

  • Es importante que yo tenga claro que índice estoy trabajando cuando esté haciendo las modificaciones a mi gráfico

Super interesante, me encanta este curso! Gran Profesor
me surgio una duda porque usar los graficos en python y no los de tableau por ejemplo? gracias se que tableau es muy lento las cargas

Me encanto esta clase de subplot. Era lo que necesitaba para complementar mis habilidades para machine learning. Solo sabia el numpy y pandas. Espero que con matplotlib y seaborn estas sean complementadas.

Wow, para los que no lo entendieron a la primera como yo, frescos!! me tomo aprox 1 hora entender esta clase de solo 5 min, pero hey, cuando lo entiendes se siente maravilloso y lo mas bonito es no rendirse en el camino y ser perseverante. Todos aprendemos a nuestro ritmo y esta bien.

3. Subplot

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0,5,11)
y = x ** 2

plt.subplot(1,2,1)
plt.plot(x,y, 'r');   #subplot para hacer varios gráficos
plt.subplot(1,2,2)
plt.hist(y);

plt.subplot(1,2,1)
plt.plot(x,y, 'r');
plt.plot(y,x, 'b');
plt.subplot(1,2,2)
plt.pie(y);

plt.subplot(2,1,1)
plt.plot(x,y, 'r');
plt.plot(y,x, 'b');
plt.subplot(2,1,2)
plt.pie(y);
plt.subplot(2,2,1)
plt.plot(x,y)
plt.subplot(1,2,2)
plt.hist(x)
plt.subplot(2,2,3)
plt.triplot(y,x)

Que util organizar las graficas con subplot, definiendo el numero de filas, columnas y el indice de la ubicacion en la que se desea trabajar.

<fig = plt.figure(figsize=(6, 4))
ax = fig.add_subplot(1, 1, 1)
ax.plot([1, 2, 3, 4], [1, 4, 9, 16], '-o')
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')
ax.set_title('Line Plot')
plt.show()> 

Subplot permite crear gráficos dentro de una gráfica. Esto lo hace a través de una matriz de gráficos y se puede acceder a ellos a través de índices:

Cómo acceder a la matriz de gráficos en Subplot

[ ]
import matplotlib.pyplot as plt
import numpy as np

[ ]
x = np.linspace(0,10,22)
y = x**4
[ ]
x
array([ 0. , 0.47619048, 0.95238095, 1.42857143, 1.9047619 ,
2.38095238, 2.85714286, 3.33333333, 3.80952381, 4.28571429,
4.76190476, 5.23809524, 5.71428571, 6.19047619, 6.66666667,
7.14285714, 7.61904762, 8.0952381 , 8.57142857, 9.04761905,
9.52380952, 10. ])
[ ]
plt.subplot(1,4,1)
plt.plot(x,y,“c–>”)
plt.subplot(1,2,2)
plt.hist(y)
plt.show()

[ ]
plt.subplot(1,2,1)
plt.plot(x,y,“c–”)
plt.plot(y,x,“m–”)
plt.subplot(1,2,2)
plt.pie(y)
plt.show()

[ ]
plt.subplot(2,1,1)
plt.plot(x,y,“c–>”)
plt.plot(y,x,“m–”)
plt.subplot(2,1,2)
plt.pie(y)
plt.show()

trabajar con subplot es muy sencillo, lo que debemos tener en cuenta son filas, columnas que voy a definir y en que índices me crean en las filas y columnas que voy a estar trabajando, puedo hacer muchas modificaciones teniendo presente que índice estoy trabajando

Como modifico el tamaño de las gráficas? Me interesa poder realizar unas gráficas en 3 filas y 3 columnas, y se ve muy chico con el tamaño por defecto.

Con GRIDSPEC se puede hacer un GRILLA de SUBSET como SUBPLOT y compartir algunos.

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.gridspec as gridspec

fig = plt.figure(tight_layout=True)
gs = gridspec.GridSpec(2, 2) # 2 filas x 2 columnas 
ax = fig.add_subplot(gs[0, :]) # comparto toda la fila 0
ax.hist(y) 
ax = fig.add_subplot(gs[1, 0])
ax.plot(x,y,'r--')  
ax = fig.add_subplot(gs[1, 1])
ax.plot(y,x,'b:') 
plt.show()

FUENTE: https://matplotlib.org/3.5.0/api/_as_gen/matplotlib.gridspec.GridSpec.html