No tienes acceso a esta clase

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

Subplots

5/18
Recursos

Con subplots se puede trabajar en un arreglo de gráficas a las cuales se accede a través de los índices.

Cómo trabajar con subplots para graficar

  • Creamos los datos que vamos a utilizar
import matplotlib.pyplot as plt
import numpy as np

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

Crear una gráfica tipo Fig

  • Para crear una gráfica que sea tipo Fig. necesitas trabajar el siguiente código:
fig, axes = plt.subplots()
axes.plot(x,y)
plt.show()

![1.JPG](imagen 1.png)

  • Varias gráficas tipo fig.
fig, axes = plt.subplots(nrows=1, ncols=2)
axes[0].plot(x,y,'b')
axes[1].plot(y,x,'r')
plt.show()

![1.JPG](imagen 2.png)

  • Acceder a los gráficos mediante el nombre almacenado en una tupla.
fig, (axes1,axes2) = plt.subplots(nrows=1, ncols=2)
axes1.plot(x,y,'b')
axes2.plot(y,x,'r')
plt.show()
3.JPG

Generar una matriz de tipo fig, con dos filas y cuatro columnas

fig, axes = plt.subplots(2,4)

#genera un trazo accediendo a las graficas a traves del indice de la matriz
axes[0,0].plot(x,y)
axes[0,1].plot(y,x, 'r')

fig.tight_layout() #mejora la visualización de los ejes de cada gráfico

![4.JPG](imagen 3.png)

  • Alternativa para generar una matriz de tipo fig, accediendo a cada gráfica mediante los nombres dados en una tupla
fig, ((axes1, axes2, axes3, axes4), (axes5, axes6, axes7, axes8)) = plt.subplots(2,4)
axes1.plot(x, np.sin(x), 'b')
axes2.plot(y, np.cos(x), 'purple')
axes3.plot(x, np.tan(y), 'orange')
axes4.plot(y, np.cos(y)**2,'black')

#mejorar la visualización de las figuras
fig.tight_layout()

![5.JPG](imagen 4.png)

Reto

Grafica la segunda línea de los subplots anteriormente mencionados. Usa el estilo de tu preferencia y compártenos el resultado en la sección de comentarios.

Aportes 177

Preguntas 6

Ordenar por:

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

Mi reto:


Mi reto cumplido …!

Resumen de la clase

Subplots

Con subplots se puede trabajar en un arreglo de graficas a las cuales se accede a traves de los indices.

  • Creamos los datos que vamos a utilizar
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0,5,11)
y = x**2
  • Crear una grafica que sea de tipo fig
fig, axes = plt.subplots()
axes.plot(x,y,'b')
plt.show()
  • Varias graficas de tipo fig
fig, axes = plt.subplots(nrows=1, ncols=2)
axes[0].plot(x,y,'b')
axes[1].plot(y,x,'r')
plt.show()
  • Acceder a los graficos mediante el nombre almacenado en una tupla
fig, (axes1,axes2) = plt.subplots(nrows=1, ncols=2)
axes1.plot(x,y,'b')
axes2.plot(y,x,'r')
plt.show()
  • Generar una matriz de tipo fig, con dos filas y cuatro columnas
fig, axes = plt.subplots(2,4)

#genera un trazo accediendo a las graficas a traves del indice de la matriz
axes[1,0].plot(x,np.cos(x))
axes[1,1].plot(x,np.sin(x), 'r')
axes[1,2].plot(x,np.tan(x), 'green')
axes[1,3].plot(x,np.cos(x)**2)

fig.tight_layout() #mejora la visualizacion de los ejes de cada grafico
  • Alternativa para generar una matriz de tipo fig, accediendo a cada grafica mediante los nombres dados en una tupla
fig, ((axes1, axes2, axes3, axes4), (axes5, axes6, axes7, axes8)) = plt.subplots(2,4)
axes5.plot(x,np.cos(x))
axes6.plot(x,np.sin(x), 'r')
axes7.plot(x,np.tan(x), 'green')
axes8.plot(x,np.cos(x)**2)

#mejorar la visualizacion de las figuras
fig.tight_layout()

Reto Completado

Para los que quieran cambiar el tamaño del lienzo:

plt.rcParams["figure.figsize"] = (10, 7)
fig, ((ax1,ax2,ax3,ax4),(ax5,ax6,ax7,ax8)) = plt.subplots(2,4) # Tuple by row !
ax1.plot(x, np.cos(x))
ax2.plot(x, np.sin(x,y),'y')
ax3.plot(x, np.tan(x,y),'r')
ax4.plot(x, np.abs(x) * 5 * np.sin(10 * x), 'r')
ax5.plot(x, np.log(x + 1))
ax6.plot(x, np.exp(x) * (np.cos(x) ** 2),'r')
ax7.plot(x, np.sin(x) + np.cos(2*x))
ax8.plot(x, np.cos(x) ** 2)
fig.tight_layout()
fig.show()

Mi reto:

hola a todos
mi reto:

Para lograr un buen análisis de datos es buena idea observar tu dataset y así entenderlo mejor. En este ejemplo trabajé con el dataset digits de scikit learn, que nos ayuda a manera de práctica para predecir números escritos a mano.

En la row [28] empecé definiendo mi figura con subplots de 4 filas y 6 columnas.
Con el ciclo for se van “llenando” esta figura con los datos del dataset digits.
La función zip crea una nueva lista de tuplas con los elementos de los iterables que se le pongan, en este caso

  • axes.ravel()

  • digits.images (las imagenes de los numeros en el dataset)

  • digits.target (etiquetas de los datos)

Es decir, toma el primer axes de la figura y la primera imagen con su etiqueta.

Al definir los ticks con una lista vacía estas ya no aparecen y se ve menos amontonado.
El tile de cada axes es la etiqueta que tiene cada imagen.

Probé, de varias maneras, hasta que llegue a este resultado:

Le quisiera dar like a la clase jajajaja

Reto
Le agregué más puntos de muestreo para una gráfica más suave

import matplotlib.pyplot as plt
import numpy as np

x =np.linspace(0.1,11,100)
y = np.sin(x)

fig ,((ax1,ax2,ax3,ax4),(ax5,ax6,ax7,ax8)) = plt.subplots(2,4)
ax1.plot(x,np.cos(x))
ax2.plot(x,np.sin(x),'y')
ax3.plot(x,np.tan(x),'r')
ax4.plot(x,np.cos(x)/x,'m')

#Reto:
ax5.plot(x,np.sinh(x))
ax6.plot(x,np.arcsinh(x),'y:')
ax7.plot(x,np.cosh(x),'r--')
ax8.plot(x,1/np.tanh(x),'m:')
fig.tight_layout()
plt.show()

RETO:

Aquí varios tips: ![](https://static.platzi.com/media/user_upload/matplotlib_2x3.jpg-7916cbad-32b7-456f-ab0d-efeb8d578205.jpg) ```js #Style plt.style.use('dark_background') fig, axes = plt.subplots(2,3,constrained_layout=True, figsize=(8,4)) #fig.suptitle('Subplots', fontsize=16) #titles titles_0 = ['Sin', 'Cos', 'Tan'] titles_1 = ['Corazón','Union','Base'] #fila 0 axes[0,0].plot(x,np.sin(x),'g') axes[0,1].plot(x,np.cos(x),'g') axes[0,2].plot(x,np.tan(x),'g') for i in range(3): axes[0,i].set_title(titles_0[i]) #fila 1 axes[1,0].plot(a, b, 'r') axes[1,1].plot(x,y,'r--') axes[1,1].plot(y,x,'b--') axes[1,2].plot(x,y,'r') for i in range(3): axes[1,i].set_title(titles_1[i]) ```Aquí para ver los temas disponibles: ```js print(plt.style.available) ```

Ejemplo de Matplotlib Orientado a Objetos (OO)

Aquí pueden encontrar la celda de código del ejemplo

Mi reto:

Reto: incluye compartimentación de 2 gráficos y reducción de gráfico.

import matplotlib.pyplot as plt
import numpy as np

fig, axes = plt.subplots(ncols=4, nrows=2)
gs = axes[1,2].get_gridspec()

# remuevo y comparto subplots 
for ax in axes[1,:-2]:
    ax.remove()
axes_1x2 = fig.add_subplot(gs[1, :-2])

# para generar las funciones vistas en clase  
x = np.linspace(0,5,11)

# funcion agregar grafico [1,2] y [1,3]
def f(t):
    return np.exp(-t) * np.cos(2*np.pi*t)
t1 = np.arange(0.0, 3.0, 0.01)

# funciones para grafico 1x2 compartido [1,:-2]
a = b = np.arange(0, 3, .02)
c = np.exp(a)
d = c[::-1]

# genero los graficos 
axes[0,0].plot(x,np.cos(x))# ubicación de gráficos 
axes[0,1].plot(x,np.sin(x),'y')
axes[0,2].plot(x,np.tan(x),'r')
axes[0,3].plot(x,np.cos(x)**2)

axes_1x2.plot(a, c, 'r--')
axes_1x2.plot(a, d, 'y:')
axes_1x2.plot(a, c + d, 'k')

axes[1,2].plot(t1, f(t1), 'v:')

axes[1,3].margins(1, 1)  # zoom out (defalult 0.5)        
axes[1,3].plot(t1, f(t1), 'g')
axes[1,3].set_title('Zoomed out')

fig.tight_layout()
plt.show()


FUENTE
https://matplotlib.org/3.1.1/tutorials/intermediate/gridspec.html
https://matplotlib.org/3.5.0/gallery/subplots_axes_and_figures/gridspec_and_subplots.html#sphx-glr-gallery-subplots-axes-and-figures-gridspec-and-subplots-py

Reto cumplido: ![](https://static.platzi.com/media/user_upload/image-8046e922-9dd5-4ea6-a35e-24de1bbad53b.jpg) ```js fig, ((ax1,ax2,ax3,ax4),(ax5,ax6,ax7,ax8)) = plt.subplots(nrows=2, ncols=4) ax1.plot(x, np.cos(x)) ax2.plot(x, np.sin(x),'r') ax3.plot(x, np.tan(x),'y') ax4.plot(x, np.cos(x)**2,'b') ax5.plot(x,y, 'm:') ax6.plot(x, x**2, '^g') ax7.plot(y,x, 'c--') ax8.plot(x, x+4, 'r') fig.tight_layout() ```![](https://static.platzi.com/media/user_upload/image-1f1c48de-3806-486d-b6bf-4c444b3d9a92.jpg)
![](https://static.platzi.com/media/user_upload/image-80842b7d-d160-43f2-b10c-f14a02952b1b.jpg)
```python #Hacemos lo mismo pero ahora detro de una tula fig, axes = plt.subplots(nrows=2,ncols=4) # axes is a 2D NumPy array, access the Axes objects using indices ax1, ax2, ax3, ax4, ax5, ax6, ax7, ax8 = axes.flatten() # Flatten the array to unpack ax1.plot(x, np.cos(x)) ax2.plot(x, np.sin(x),'y') ax3.plot(x, np.tan(x),'r') ax4.plot(x, np.cos(x)**2) ax5.plot(x, np.sin(x)**2) ax6.plot(x, np.tan(x)**2) ax7.plot(x, np.cos(x)**3) ax8.plot(x, np.sin(x)**3) # ... plot on the remaining axes (ax5 to ax8) as needed fig.tight_layout()#Hace un grafico mas centrado y no ensimado ```![](https://static.platzi.com/media/user_upload/image-05f5fa2f-075d-47b9-aa18-966e9c5904b7.jpg)
Solución del reto: ![](https://static.platzi.com/media/user_upload/image-c34f4892-1892-42d0-94e7-9e44d962ff88.jpg)
![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202024-06-28%20a%20la%28s%29%203.51.14p.m.-34f0cdde-8015-4d5c-be23-f6f60f9dd19a.jpg)
![](</Users/enriquejimeneztellez/Desktop/Captura de pantalla 2024-06-28 a la(s) 3.51.14 p.m..png>)![](<Captura de pantalla 2024-06-28 a la(s) 3.51.14 p.m.>)mi reto
Les comparto mi reto: ![](https://static.platzi.com/media/user_upload/image-1ff4d0ba-6ca3-460a-9785-97d766fcb904.jpg)
```python import numpy as np import matplotlib.pyplot as plt \#Definiendo variables x = np.linspace(0,5,11) y = np.sin(x) \#Metodo por objetos \#Definiendo parametros para subplots \#Con axes como tuplas fig, ((ax1,ax2,ax3,ax4),(ax5,ax6,ax7,ax8)) = plt.subplots(nrows=2,ncols=4) \#Trabajando con axes - graficos COMO TUPLAS \#Trabajando con axes ax1.plot(x,np.cos(x),'c') #cyan ax2.plot(x,np.sin(x),'r') #red ax3.plot(x,np.tan(x),'b') #blue ax4.plot(x,np.cos(x)\*\*2,'g') #green ax5.plot(x,np.cosh(x),'orange') #cyan ax6.plot(x,np.exp(x),'gray') #red ax7.plot(x,np.tanh(x),'b') #blue ax8.plot(x,np.sin(x \*\* 2),'k') #green \#Acomodando los graficos fig.tight\_layout() ``` ![](https://static.platzi.com/media/user_upload/image-989c12f0-70a2-4481-bc77-023cdaa68680.jpg)
![](https://static.platzi.com/media/user_upload/image-2f10f8de-a078-4c92-94e0-a4e52f2262e9.jpg)queria hacer figuras bonias xd
Mi reto.![](https://static.platzi.com/media/user_upload/image-80db27e4-468b-4f9e-bc1e-9905ba1d3a24.jpg)
Mi reto logrado me gusta este curso: ![](https://static.platzi.com/media/user_upload/image-33397f03-2820-4822-9bbc-169b9880df77.jpg)
Que genial esta clase
fig, ((ax0,ax1,ax2,ax3), (ax4,ax5,ax6,ax7)) = plt.subplots(2,4) #aca esta definido cada objeto en este caso cada graficaax0.plot(x,np.cos(x))ax1.plot(x,np.sin(x),'y')ax2.plot(x,np.tan(x),'r')ax3.plot(x,np.cos(x)\*\*2) ax4.plot(x,np.cos(x),'r')ax5.plot(x,np.sin(x),'b')ax6.plot(x,np.tan(x),'g')ax7.plot(x,np.cos(x)\*\*2,'r') fig.tight\_layout() quise poner primero el color antes que el \*\*2 y no se puede me guusto la tarea
![](https://static.platzi.com/media/user_upload/image-198a121d-4826-48e5-b8eb-dd374b48fc21.jpg)
Hola! Les comparto las funciones que coloque en la segunda linea de las gráficas: ![](https://static.platzi.com/media/user_upload/imagen-9bb91541-04cd-46ef-ad26-1df60b7a3e82.jpg)
![](https://static.platzi.com/media/user_upload/image-22b793a4-1524-4795-bccc-556c9de381e9.jpg)
fig,((ax1, ax2, ax3, ax4), (ax5,ax6,ax7,ax8)) = plt.subplots(2, 4) #Se deben definir todas las 8 salidas
ax1.plot(x,np.cos(x),'b') #Posición 0,0
ax2.plot(x,np.sin(x),'g') #Posición 0,1
ax3.plot(x,np.tan(x),'r') #Posición 0,2
ax4.plot(x,np.arccos(x),'g') #Posición 0,3

ax5.plot(x,np.arccosh(x),'y') #Posición 1,0
ax6.plot(x,np.arcsin(x),'r') #Posición 1,1
ax7.plot(x,np.arctan(x),'g') #Posición 1,2
ax8.plot(x,np.arccos(x)**2,'b') #Posición 1,3

fig.tight_layout() #Distribuye uniformemente

Esta clase me gusto bastante porque me ayudara a mejorar mis conocimientos como programador y como mejorar en el campo laboral. Ademas, me sera util para un proyecto que estoy haciendo. Aqui esta mi reto:
![](

```js fig , axes = plt.subplots(nrows=2,ncols=4) axes[0,0].plot(x,y,'b:') axes[0,1].plot(x,np.cos(x),'y:') axes[0,2].plot(x,np.tan(x),'r-') axes[0,3].plot(x,np.sin(x),'g:') axes[1, 0].plot(y, x, 'r--') axes[1, 1].pie([1, 2, 3], labels=['A', 'B', 'C'], autopct='%1.1f%%', colors=['red', 'green', 'blue']) axes[1, 2].hist(x, bins='auto', color='b') axes[1, 3].pie([2, 2, 3], labels=['D', 'F', 'G'], autopct='%1.1f%%', colors=['green', 'Red', 'yellow']) fig.show() ```![](https://static.platzi.com/media/user_upload/image-b47a36d5-944a-451b-85c2-acb319d5e0ec.jpg)
![](https://static.platzi.com/media/user_upload/image-4d87663c-1c7d-4b13-935c-84184fd24471.jpg) ![](https://static.platzi.com/media/user_upload/image-d73a8d51-6be1-4b80-aded-7a146e9dbb4f.jpg)
\# Crear una figura con dos subgráficos en una fila y dos columnas fig, axes = plt.subplots(nrows=1, ncols=2) \# Graficar la relación entre x e y en el primer subgráfico con una línea azul axes\[0].plot(x, y, 'b') \# Graficar la relación entre y y x en el segundo subgráfico con una línea roja axes\[1].plot(y, x, 'r') \# Mostrar la figura con los dos subgráficos plt.show()
<fig, ((ax1,ax2,ax3,ax4), (ax5,ax6,ax7,ax8)) = plt.subplots(2,4)
ax1.plot(x, np.cos(x))
ax2.plot(x, np.sin(x),'g')
ax3.plot(x, np.tan(x), 'r')
ax4.plot(x, np.cos(x)**2)
ax5.plot(x**3, y, 'm:')
ax6.plot(x, np.sqrt(y), 'c--')
ax7.plot(x, np.arccos(y), '-.', color=Naranja)
ax8.plot(x, np.log(y),'o-', color=rosado1)

fig.tight_layout()> 

El reto:

![](https://static.platzi.com/media/user_upload/image-f747d511-1fb3-4909-940b-1066e6e70d31.jpg) ```js fig, ((ax1,ax2,ax3,ax4),(ax5,ax6,ax7,ax8)) = plt.subplots(nrows=2,ncols=4) ax1.plot(x,np.cos(x),'g') ax6.plot(x,np.sin(x),'y') ax3.plot(x,np.tan(x),'r') ax8.plot(x,np.cos(x)**2,'b') ax2.plot(x,y,'p') ax7.plot(x,x**3,'o') ax4.plot(x,x*y,'r*') ax5.plot(x,np.cos(x)/2,'c*') fig.tight_layout() ```fig, ((ax1,ax2,ax3,ax4),(ax5,ax6,ax7,ax8)) = plt.subplots(nrows=2,ncols=4)ax1.plot(x,np.cos(x),'g')ax6.plot(x,np.sin(x),'y')ax3.plot(x,np.tan(x),'r')ax8.plot(x,np.cos(x)\*\*2,'b')ax2.plot(x,y,'p')ax7.plot(x,x\*\*3,'o')ax4.plot(x,x\*y,'r\*')ax5.plot(x,np.cos(x)/2,'c\*')fig.tight\_layout()

Reto:

![](https://static.platzi.com/media/user_upload/image-12146ad5-f403-4e10-8595-7e1271643915.jpg) mi aporte
Reto: ![](https://static.platzi.com/media/user_upload/reto-2224ed3a-4941-4b6d-bf2b-50d8d440c9cc.jpg)![]()

Mi aporte al reto de la clase:
.
.

fig, axes = plt.subplots(3,3)
axes[0,0].plot(x,np.cos(x),'red')
axes[0,1].plot(x,np.tan(y),'blue')
axes[0,2].plot(x,np.sin(y),'gray')

axes[1,0].plot(x,y,'black')
axes[1,1].plot(y,x,'orange')
axes[1,2].plot(x,y,'green')

axes[2,0].plot(y,np.tan(y),'purple')
axes[2,2].plot(np.sin(x),y,'#FFF0C9')
axes[2,1].plot(x,z,'#4a6f22')

fig.tight_layout()

Mi reto:

<fig , ax  = plt.subplots(2,4)
fig.set_size_inches(9,5)
ax[0,0].plot(x,y)
ax[0,0].set_title('Función seno')
ax[0,0].grid(False)
ax[0,1].plot(x,np.cos(x),color ='red',linestyle =':',linewidth = 1.5)
ax[0,1].set_title('Función Coseno')
ax[0,1].set_ylabel('cos(x)')
ax[0,1].grid(False)

ax[0,2].plot(x,x**3,color = 'purple')
ax[0,2].set_title('$x^{3}$')
ax[0,2].grid(False)
fig.tight_layout()

ax[0,3].plot(np.random.randn(20).cumsum(),color = 'green',linestyle='-.')
ax[0,3].set_title('Serie')
ax[0,3].grid(False)

ax[1,0].pie(df.groupby('cylinders').count().reset_index().iloc[:,[1]].values.reshape(5))

ax[1,1].hist(df['mpg'],color = '#F29446',edgecolor = 'black')

ax[1,2].bar(df['origin'].unique(),df.groupby('origin').mean()['horsepower'],
            color = ['#596EFA','#DC6A6F','#A2E5F9'],edgecolor = 'black')
ax[1,3].hist(df['acceleration'],edgecolor ='black')
plt.show()> 


'''

Mi reto:

Este es mi reto 📊

  • Usé los “o” para hacer el gráfico con puntos

Les comparto mi reto:

axes[0][0].plot(x, y, 'b')
axes[0][1].plot(x, np.sin(y), 'g')
axes[0][2].plot(x, np.cos(y), 'r')
axes[0][3].plot(x, np.tan(y), 'c')
axes[1][0].plot(x, np.sin(y)**2, 'm')
axes[1][1].plot(x, np.cos(y)**2, 'y')
axes[1][2].plot(x, np.tan(y)**2, 'k')
axes[1][3].plot(y, x, 'bo')
limIzquierda = -(np.pi * 2)
limDerecha = np.pi * 2

x_sen_cos = np.linspace(limIzquierda, limDerecha , 100)

sen = np.sin(x_sen_cos )
cos = np.cos(x_sen_cos )

x_polinomio = np.linspace(-100,100,100)
y = x_polinomio**2
t = x_polinomio **3

x_tan = np.linspace(0,np.pi, 100)
tan = np.tan(x_tan)
x_log = np.linspace(1,100, 1000)
log_arr = np.log(x)

x_vabsolut = np.linspace(-100, 100, 100)
valor_absoluto = np.abs(x_vabsolut)

x_tanh = np.linspace(-(2*np.pi), 2*np.pi, 100)
tanh = np.tanh(x_tanh)


fig, axes = plt.subplots(2,4)
(
    axes[0,0].plot(x_polinomio, y , 'r'),
    axes[0,1].plot(x_polinomio, t, 'g'),
    axes[0,2].plot(x_vabsolut, valor_absoluto, 'b'),
    axes[0,3].plot(x_tanh, tanh, 'black'),
    axes[1,0].plot(x_sen_cos, sen, 'y'),
    axes[1,1].plot(x_sen_cos, cos, 'orange'),
    axes[1,2].plot(x_tan, tan, 'gold'),
    axes[1,3].plot(x_log, log_arr, 'purple'),

    fig.tight_layout(),
)

Reto de la clase:

Ejercicio de la clase:

fig, ((ax1, ax2, ax3, ax4), (ax5, ax6, ax7, ax8)) = plt.subplots(nrows=2, ncols=4)
ax1.plot(x, np.cos(x))
ax2.plot(x, np.sin(x),'y')
ax3.plot(x, np.tan(x),'r')
ax4.plot(x, np.cos(x)**2)
fig.tight_layout()

![](
Reto cumplido, me gusto esta clase, ahora si entendi como generar graficos

Comparto mi reto

Reto:

Reto resuelto

![](

![](

Mi reto:

5. Subplots

import matplotlib.pyplot as plt
import numpy as np

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

fig, axes = plt.subplots()
axes.plot(x,y,'r')

fig, axes = plt.subplots(nrows=1, ncols=2)
axes[0].plot(x,y,'r')
axes[1].plot(y,x,'r')

fig, (ax1,ax2) = plt.subplots(nrows=1, ncols=2)
ax1.plot(x,y,'r')
ax2.plot(y,x,'r')

fig, axes = plt.subplots(nrows=2, ncols=4)
#ax1.plot(x,y,'r')
#ax2.plot(y,x,'r')
axes[0,0].plot(x,np.cos(x))
axes[0,1].plot(x,np.sin(x))
axes[0,2].plot(x,np.tan(x))
axes[0,3].plot(x,np.cos(x)**2)

fig, ((ax1,ax2,ax3,ax4),(ax5,ax6,ax7,ax8)) = plt.subplots(nrows=2, ncols=4)
#ax1.plot(x,y,'r')
#ax2.plot(y,x,'r')
ax1.plot(x,np.cos(x))
ax2.plot(x,np.sin(x))
ax3.plot(x,np.tan(x))
ax4.plot(x,np.cos(x)**2)
ax5.plot(x,x**2)
ax6.plot(x,x**3)
ax7.plot(x,1/x)
ax8.plot(x,x-1)
fig.tight_layout() # agrupa mejor los elementos

Mi aporte

fig, ((ax1, ax2, ax3, ax4),(ax5, ax6, ax7, ax8)) = plt.subplots(2, 4)

ax1.plot(x, np.cos(y), 'm*-') 
ax1.set_facecolor('blue') 

ax2.plot(y, np.cos(x), 'rd-')
ax2.set_facecolor('gray') 

ax3.plot(x, np.tan(y), 'b:')
ax3.set_facecolor('magenta')

ax4.plot(y, np.sin(y)**3, 'wd-')
ax4.set_facecolor('green') 

ax5.plot(np.sin(x), np.tan(-y), 'b+-') 
ax5.set_facecolor('yellow') 

ax6.plot(np.tan(y), x**-3, 'y')
ax6.set_facecolor('red') 

ax7.plot(y, -x, 'b')
ax7.set_facecolor('brown') 

ax8.plot(-y, -x, 'r:') 
ax8.set_facecolor('blue') 

fig.tight_layout() 

Mi reto:
.

Mi respuesta al reto

fig, ((ax1, ax2, ax3, ax4), (ax5, ax6, ax7, ax8)) = plt.subplots(2, 4)
ax1.plot(x,np.cos(x))
ax2.plot(x,np.sin(x), 'y')
ax3.plot(x,np.tan(x), 'r')
ax4.plot(x,np.cos(x)**2)

ax5.plot(x,np.tan(x))
ax6.plot(x,np.cos(x), 'b:')
ax7.plot(x,np.tan(x), 'g--')
ax8.plot(x,np.cos(x)*5)
fig.tight_layout()
plt.show()

El desafío…

Mi Reto:

def eq(x, y):
    return 0.2*x + 0.3*y + 0.4 + 0.2*(x - x[0]*0.2 + y[0])

fig, ((ax1, ax2, ax3, ax4), (ax5, ax6, ax7, ax8)) = plt.subplots(2,4)
ax1.plot(x, np.sin(x), 'b')
ax2.plot(y, np.cos(x), 'purple')
ax3.plot(x, np.tan(y), 'orange')
ax4.plot(y, np.cos(y)**2, 'black')
ax5.plot(x, (10*x) + y)
ax6.plot(y, (-10*y) + x, 'mD:')
ax7.plot(x - y, 'teal')
ax8.plot(x, eq(x, y), 'r')
fig.tight_layout()

Para mejorar la visualizacion utiliza ‘figsize()’

<fig, ((axes1, axes2, axes3, axes4), (axes5, axes6, axes7, axes8)) = plt.subplots(2,4,figsize=(5,4))> 

Mi reto:

Mi aporte!

Hola,

El siguiente código define cada uno de los axes mediante un for loop.

import matplotlib.pyplot as plt
import numpy as np

i = 1
fig, axes = plt.subplots(nrows=2, ncols=4)
for ax in axes.ravel():
    ax.plot(np.sin(x * i), 'r')
    i += 1

fig.tight_layout()

El resultado es el siguiente:

RETO

fig, axes = plt.subplots(2, 4)
fig.tight_layout()
fig.set_facecolor('0.9')

axes[0,0].plot(x, np.cos(x), 'y+')
axes[0,0].set_title('x and cos(x)')

axes[0,1].plot(y, np.cos(y), 'g.')
axes[0,1].set_title('y and cos(y)')

axes[0,2].plot(x, np.tan(y), 'c:')
axes[0,2].set_title('x and tan(y)')

axes[0,3].plot(x**(1/2), x+8, 'C9_')
axes[0,3].set_title('root(x) and x + 8') 

axes[1,0].plot(np.pi* y, np.cos(x), 'C8o')
axes[1,0].set_title('y and cos(x)')

axes[1,1].plot(np.sin(y), np.tan(y) **3, 'C5|')
axes[1,1].set_title('sin(y) and tan(y)')

axes[1,2].plot(np.sqrt(y), np.tan(y), 'C6D')
axes[1,2].set_title('square y tan(y)')

axes[1,3].plot(y**(1/2), x+8, 'C1+') 
axes[1,3].set_title('root(y) and x + 8')

Este es mi reto completado

Use dos ciclo for para generar algunas graficas y escribir menos código.

nrows=2
ncols=4
colors=['r','b','g','k']

fig,axs = plt.subplots(nrows,ncols)

for i in range(nrows):
  for j in range(ncols):
    axs[i,j].plot(x,x**j,color=colors[j])

fig.tight_layout()

Mi reto!

Me encanto

fig, ((ax1,ax2,ax3,ax4),(ax5,ax6,ax7,ax8)) = plt.subplots(2, 4)
ax1.plot(x,np.cos(x))
ax2.plot(x,np.sin(x),'y')
ax3.plot(x,np.tan(x),'r')
ax4.plot(x,np.cos(x)**2)
ax5.plot(y,np.sin(y),'bo-')
ax6.plot(y, np.tan(x), 'g--')
ax7.plot(y, np.cos(x), 'g:')
ax8.plot(y, np.sin(x), 'r--')
fig.tight_layout()

Mi reto


mi aporte

<fig, ((ax1,ax2,ax3,ax4),(ax5,ax6,ax7,ax8)) = plt.subplots(nrows=2, ncols=4)
ax1.plot(x,np.cos(x),'b')
ax2.plot(x,np.sin(x),'r')
ax3.plot(x,np.tan(x),'g')
ax4.plot(x,np.cos(x)**2,'m')
ax5.plot(x,np.exp(x),'b')
ax6.plot(x,np.tan(z),'g')
ax7.plot(x,np.cos(z),'b')
ax8.plot(x,np.sin(z),'y')
fig.tight_layout
fig.show> 

Mi reto:

Mi reto

x = np.linspace(0,2*np.pi,100)

fig,((ax1,ax2,ax3,ax4),(ax5,ax6,ax7,ax8)) = plt.subplots(2,4)
fig.suptitle('Example figures',fontsize=18)
plt.rcParams["figure.figsize"] = (19, 7) # Tamaño

ax1.plot(x,np.sin(x),'r>')
ax1.set_title('sin(X)')

ax2.plot(x,np.tan(x),'b')
ax2.set_title('tan(X)')

ax3.plot(x,np.cos(x),'b--')
ax3.set_title('cos(x)')


ax4.scatter(x,np.sqrt(x))
ax4.set_title('sqrt(x)')

ax5.plot(x,np.cos(6*x) * np.exp(-x))

ax6.plot(x,3*x**2-20*x-1)

ax7.plot(x,np.exp(x),'r--')
ax7.set_title('e^2')

ax8.plot(x,-np.sin(x),'b--')

Mi Reto

fig, ((ax1,ax2,ax3,ax4),(ax5,ax6,ax7,ax8),(ax9,ax10,ax11,ax12),(ax13,ax14,ax15,ax16)) = plt.subplots(nrows=4, ncols=4)
ax1.plot(x,np.sin(x),'g')
ax2.plot(y,np.cos(x),'y')
ax3.plot(x,np.tan(x),'b')
ax4.plot(x,np.cos(x)**2,'pink')

ax5.plot(x,np.arcsin(x),'g')
ax6.plot(y,np.arccos(x),'y')
ax7.plot(x,np.arctan(x),'b')
ax8.plot(y,np.arctan(x),'pink')

ax9.plot(y,np.sin(y),'g')
ax10.plot(x,np.cos(y),'y')
ax11.plot(y,np.tan(y),'b')
ax12.plot(y,np.cos(y)**2,'pink')

ax13.plot(y,np.arcsin(y),'g')
ax14.plot(x,np.arccos(y),'y')
ax15.plot(y,np.arctan(y),'b')
ax16.plot(x,np.arctan(y),'pink')
fig.tight_layout()

a ver, básico pero terminado mi grafico con las 8 propuestas.

Hice el reto, pero le cambié el paso en el x para poder apreciar mejor las curvas que se forman. Nunca pares de aprender uwu

x =np.linspace(-11,11,100)


fig ,((ax1,ax2,ax3,ax4),(ax5,ax6,ax7,ax8)) = plt.subplots(2,4,figsize=(17,10))
ax1.plot(x,np.cos(x))
ax1.set_facecolor('black')
ax1.spines['bottom'].set_color('white')
ax1.spines['top'].set_color('white')
ax1.spines['left'].set_color('white')
ax1.spines['right'].set_color('white')
ax1.xaxis.label.set_color('white')
ax1.yaxis.label.set_color('white')
ax1.tick_params(axis='x', colors='white')
ax1.tick_params(axis='y', colors='white')
ax1.grid(color='r', linestyle=':', linewidth=1)
ax1.set_title(r'$Sin(x)$')
ax1.set_xlabel(r"$x$ o $\pi rad$")
ax1.set_ylabel(r"$y$")
#################################
ax2.plot(x,np.sin(x),'y')#########
###########################33
ax3.plot(x,np.tan(x),'r')
ax3.set_ylim([-6, 6])
ax3.set_xlim([-np.pi, np.pi])
ax3.set_xticks(np.arange(-2*np.pi, 5*np.pi/2, np.pi/2))
ax3.grid(True)

# Trazo una línea vertical y horizontal en la coordenada (x,y)=(0,0) color gold (	#D4AF37)
# y con trazo - linea
ax3.axvline(0, color='#D4AF37', ls="-")
ax3.axhline(0, color='#D4AF37', ls="-")

def axvlines(ax=None, xs=[0, 1], ymin=0, ymax=1, **kwargs):
    ax = ax or plt.gca()
    for x in xs:
        ax.axvline(x, ymin=ymin, ymax=ymax, **kwargs)

axvlines(ax=ax3, xs=[-3*np.pi/2, -1*np.pi/2, np.pi/2, 3*np.pi/2, 5*np.pi/2], c='b', ls='--')

ax3.set_xticklabels([r'$-2 \pi $',r'$-3\pi /2$',r'$-\pi $',r'$-\pi /2$', 
                     r'0', r'$\pi /2$',r'$\pi $',r'$3\pi /2$', r'$2\pi$'], rotation=90)

##########################33
ax4.plot(x,np.cos(x)/x,'m')

#Reto:
ax5.plot(x,np.sinh(x))
ax6.plot(x,np.tanh(x),'g:')
ax7.plot(x,np.cosh(x),'r--')
ax8.plot(x,np.log(x),'m:')
fig.tight_layout()
#fig.set_size_inches(17,10)
fig.set_facecolor('#463D3D')#### color de todo el lienzo
plt.show()

Que clase de brujería es esta?

np.random.seed(1)
x = np.random.normal(size =5000)
y = x + np.random.normal(size=5000)
fig, ax = plt.subplots()
ax.hist2d(x,y, bins=20)
plt.show

Este es el resultado del reto