Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Diseñando mapas: curvas de nivel

22/30
Recursos

Aportes 28

Preguntas 6

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Si alguien tiene la duda de que es la función meshgrid, les dejo una página que me ayudó . Página

Me emociones con este tema, le cambie varias veces los colores a mis graficas y al finar resulto algo bien psicodelico 😅

Miren este mapa me ayudo real me ayudo a entenderlo mejor, yo lo veo como cortar rebanadas horizontales a nuestra grafica 3d y ver que grafica en 2d queda desde arriba

Entendiendo las curvas de nivel y los mapas
.
Las curvas de nivel son básicamente la vista en planta (desde arriba) de una superficie. Entonces, a partir de esto puedes tener una idea de cómo es la superficie.

.
Son bastante versátiles para representar valores. También las curvas de nivel se usan para representar un terreno (el de una ciudad, por ejemplo), lo que es útil para ingeniería civil, ciencias geográficas, física y geología.
.

#Grafica 3D
from matplotlib import cm       #Para colores 
import numpy as np              #Para crear lo arreglos y las funciones matematicas 
import matplotlib.pyplot as plt #Para graficar 
def z(x,y):
  return np.sin(x) + 2 * np.cos(y)
res = 100
x = np.linspace(-4,4,num=res)
y = np.linspace(-4,4,num=res)
x,y = np.meshgrid(x,y)
z = z(x,y)

fig , ax = plt.subplots(subplot_kw={"projection":"3d"})
surf = ax.plot_surface(x,y,z,cmap=cm.cool)
fig.colorbar(surf)

Curvas de Nivel

Curvas de Nivel

fig2, ax2 = plt.subplots()
level_map = np.linspace(np.min(z),np.max(z),num = 10)

cp = ax2.contourf(x,y,z,levels = level_map ,cmap=cm.cool)
fig2.colorbar(cp)

Para las personas que quieren interactuar con los gráficos, aquí los pasos (en jupyter-notebook):

  1. Instalar anaconda o crear un ambiente virtual con pip, como virtualenv. Esto lo pueden aprender en el curso de ingeniería de datos con python.

  2. Una vez instalado alguno de los dos, inicialicen el ambiente virtual, e instalen ipympl. En anaconda es con conda install ipyml, si crearon un ambiente virtual propio es pip install ipympl

  3. En la hoja de jupyter-notebook, escribirán lo siguiente y solo lo tendrán que ejecutar una sola vez por cada hoja de jupyter-notebook:

%matplotlib widget

Si, con el signo de porcentaje incluido. Esto consume bastante recursos cuando se trata de un gráfico 3d (también se puede usar para gráficos en 2d). Si quieren volver al original, solo cambien la línea de arriba por lo siguiente y ejecútenla:

%matplotlib inline

Dos mapas

from matplotlib import cm # Para manejar colores
import numpy as np
import matplotlib.pyplot as plt

#SUPERFICIES SUBPLOTS

def f(x,y):
  return np.sin(x) + 2*np.cos(y)

res = 100
x = np.linspace(-4, 4, res)
y = np.linspace(-4, 4, res)
#MESHGRID(X,Y): DEVUELVE MATRICES DE COORDENADAS DE VECTORES COORDENADAS
X, Y = np.meshgrid(x, y)
Z = f(X,Y)

# Gráficar la superficie

#SUBPLOTS(NROWS=1,NCOLS=1, ,DPI=100):CREA UN CONJUNTO DE FIGURAS
#DPI:RESOLUCION DE LA FIGURA
#FIGSIZE(ANCHO=6.4, ALTO=4.8):ANCHO Y ALTO EN PULGADAS
#RETORNA FIGURE, AXES
fig,ax = plt.subplots(1,2,figsize=(14,7),dpi=60, subplot_kw={"projection": "3d"})

#CON EL ANTIALIASED (SUAVIZADO) OFF SE OPERA MAS RAPIDO
surf1 = ax[0].plot_surface(X, Y, Z, cmap=cm.cool, linewidth=0, antialiased=False)
fig.colorbar(surf1, ax=ax[0])
ax[0].set_title("Superficie Tema cool")

surf2 = ax[1].plot_surface(X, Y, Z, cmap=cm.hot, linewidth=0, antialiased=False)
fig.colorbar(surf2, ax=ax[1])
ax[1].set_title("Superficie Tema hot")

plt.show()

Con cm=gist_rainbow_r

Recomiendo correrlo en un ambiente virtual en la maquina,

Valle morado está ma, sería montaña para morado y valle para el azul claro

Siempre me pregunte como era que se hacian estos graficos. Lo mejor es que ya entendí este video que vi hace años:

¿Qué es el Descenso del Gradiente? Algoritmo de Inteligencia Artificial | DotCSV

Espero les guste o/

Para hacer la papa de Pringles:

return 4 + y**2 - x**2

Esto me hubiera sido muy útil cuando estudiaba en la carrera la materia de cálculo de multivariables.

Ya habia manejado matplotlib pero nunca así! lo amé! No se si profundizan más en el uso de matplolib en otros cursos, porque quedé encantada

En el minuto 2:00 cuando el profe hizo un silencio raro, alguien más pensó que muteo sin querer el video o que se le dañaron los audífonos 😂😂😂😂

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm

def f(x,y):
    return np.sin(x) + 2*np.cos(y)


if __name__ == '__main__':

    res = 100

    x = np.linspace(-4, 4, num=res)
    y = np.linspace(-4, 4, num=res)

    x, y = np.meshgrid(x,y)
    z = f(x,y)

    fig, ax = plt.subplots(subplot_kw={"projection":"3d"})
    surf = ax.plot_surface(x,y,z, cmap=cm.cool)
    fig.colorbar(surf)
    plt.show()

En verdad vale la pena correrlo en la máquina con ambiente virtual, lo puedes visualizar un poco mejor al moverlo en 3D. En este caso hice la función:

Z = np.exp(X) + np.sin(Y)

Y me salió como una hoja de papel doblada:

Las curvas de nivel son, como su nombre lo dice, curvas que describen todos los puntos en los cuales un la función f(x,y) = c siendo c una constante, por ejemplo:
Sea f(x,y) = x^2 + y^2 , al igualarla a una constante _c =1 _ entonces la curva es x^2+y^2=1 que es el conjunto de todos los puntos que cumplen esa regla en el plano R^2 y por lo que podemos ver es un circulo. En otras palabras z=f(x,y)=c donde c es una constante podemos ver que si cortamos un plano a la altura c ,desde arriba veríamos esa curva de nivel.

Estoy usando otro notebook diferente al de la clase y si no añado el siguiente código al final nunca hace el plot.

z.show(plt, width='500px')

Creo que necesito descansar, en vez de “curvas de nivel” leí “curvas de miel” jajaja.

Curvas de nivel

Fuente

Excelente clase, esperaba que todo el curso fuera aplicado con Python.

acá les comparto la documentación de subplots, donde pueden ver que otros argumentos aparte de subplot_kw pueden pasar y también la documentación de add_subplot donde explican que ademas del tipo de proyección, pueden pasar que haga un gráfica polar entre otros.

Excelente la clase, se entiende muy bien

Les dejo mi curva de nivel con la función de la clase. Usé un colorbar que me gusta mucho, se llama “coolwarm”.