Gráfico de contorno de Matplotlib
-
Use el método
contour()
para obtener el gráfico de contorno en Matplotlib -
Utilice el método
contourf()
en Matplotlib
En esta demostración, veremos qué es un gráfico de contorno y cómo podemos obtener gráficos de contorno con la ayuda del método contour()
en Matplotlib.
Use el método contour()
para obtener el gráfico de contorno en Matplotlib
Los gráficos de contorno tienen una forma de mostrar una superficie tridimensional en un plano bidimensional. Grafica dos variables pronosticadas, x
e y
, en el eje y y una variable de respuesta, z
, como contornos.
Un gráfico de contorno en dos dimensiones es la isolínea de un campo escalar que depende de dos variables. Discreticemos las variables en cada uno de los ejes.
Comenzaremos con un componente x discretizado que podemos crear con la ayuda de numpy.linspace()
. Luego, importamos numpy
.
Queremos tener x
espaciado linealmente de -2
a -2
con valores de 500
. Para y
, también queremos hacer lo mismo.
import matplotlib.pyplot as plot
import numpy as np
x = np.linspace(-2, 2, 500)
y = np.linspace(-2, 2, 500)
Podemos crear una malla bidimensional utilizando el método np.meshgrid()
, que se guardará en x
mayúscula y y
mayúscula. Entonces podemos evaluar nuestro campo escalar usando el seno de x y el coseno de y.
x, y = np.meshgrid(x, y)
z = np.sin(x) + np.cos(y)
El gráfico de contorno se crea utilizando el método contour()
y acepta tres parámetros. Vemos las isolíneas de la función junto con una clave de color.
Para el valor del campo escalar en esta posición, podemos activar una escala de colores mediante plot.colorbar()
para obtener información sobre qué valor se indica con un determinado color.
plot.contour(x, y, z)
plot.colorbar()
Código fuente completo:
import matplotlib.pyplot as plot
import numpy as np
x = np.linspace(-2, 2, 500)
y = np.linspace(-2, 2, 500)
x, y = np.meshgrid(x, y)
z = np.sin(x) + np.cos(y)
plot.contour(x, y, z)
plot.colorbar()
plot.show()
Producción:
Utilice el método contourf()
en Matplotlib
Otro método llamado contourf()
crea un gráfico de contorno, pero las áreas intermedias se rellenan con el valor de color correspondiente.
Código:
import matplotlib.pyplot as plot
import numpy as np
x = np.linspace(-2, 2, 500)
y = np.linspace(-2, 2, 500)
x, y = np.meshgrid(x, y)
z = np.sin(x) + np.cos(y)
plot.contourf(x, y, z)
plot.colorbar()
plot.show()
Producción:
Usando el argumento niveles
, podemos cambiar el número de niveles. Los niveles
son el número de isolíneas.
Por ejemplo, creemos 30 isolíneas y luego veamos que la transición es mucho más suave. También podemos seleccionar manualmente qué valor a qué valor queremos tener isolíneas, por ejemplo, siendo vmin
-1 y vmax
0.5.
Cuando ejecutamos el siguiente código, no podemos cubrir el área amarilla con isolíneas porque su valor es demasiado alto.
Código:
import matplotlib.pyplot as plot
import numpy as np
x = np.linspace(-2, 2, 500)
y = np.linspace(-2, 2, 500)
x, y = np.meshgrid(x, y)
z = np.sin(x) + np.cos(y)
plot.contourf(x, y, z, levels=30, vmin=-1, vmax=0.5)
plot.colorbar()
plot.show()
Producción:
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn