Puntos clave: conoce a Crea gráficos 3D usando Matplotlib, centrándote en técnicas esenciales y ejemplos de programación. El tutorial incluye conceptos de gráficos 3D, limitaciones y código de ejemplo para generar gráficos.
- Resumen de conceptos de gráficos 3D y ejemplos de programación.
- Importancia de usar entornos como los cuadernos Jupyter para trazar gráficos.
En este artículo, mostraré cómo dibujar gráficos tridimensionales en Matplotlib.
Para trazar gráficos en Matplotlib, te necesitas utiliza un cuaderno Zeppelin u Jupyter (u otro entorno gráfico). Tu otra opción están guardar tus gráficos en un archivo gráfico para mostrarlos más adelante. Esto están especialmente útil si te ejecutas un programa de larga duración que tarda demasiados minutos u horas en ejecutarse en un cuaderno interactivo, como un modelo de aprendizaje automático.
Introducción a los gráficos 2D
Voy a Comienza con una explicación muy sencilla de los conceptos básicos. La superficie plana de una carta también están conocida como plano cartesiano. te recuerda del instituto que cada punto (x,y) están un punto en esta superficie plana x-y.
El gráfico de una recta con ángulo de 45 grados, por ejemplo, está f(x)=y=x. Normalmente escribimos y=f(x) como que x están función de y.
Graficemos y = sin(x) para la curva familiar que varía entre 1 y -1. Aquí vamos.
Primero rellenamos un array con suficientes puntos de datos para Haz un gráfico suave. En particular, los separamos por 0,1 y variamos de -5 a 5:
x = np.arange(-5,5,0.1)
El resto del código está simple. bo significa círculo azul.
El código
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(10,10))
x = np.arange(-5,5,0.1)
y = np.sin(x)
plt.plot(x,y,'bo')
Ahora, añadamos una tercera dimensión a nuestro primer gráfico.
Gráficos 3D en Matplotlib
Primero, una advertencia: la gente no utiliza a menudo los gráficos 3D, principalmente porque a los lectores les cuesta entenderlos. Por ejemplo, es fácil leer un gráfico de series temporales 2D, con el tiempo en el eje x y en el eje vertical. Pero si añadimos un tercer punto z, flota en el espacio, a menudo pareciéndose a una masa y dificultando su comprensión.
Aquí haré algo sencillo: colocar nuestra curva senoidal plana en el espacio 2D. Técnicamente, esto se está llamado hiperplano, ya que no tiene dimensión en la tercera dimensión.
En el espacio 3D, cada coordenada están dada como (x,y,z). En la clase de cálculo, te acostumbrado a ver el sistema de coordenadas expresado así:
El punto z es función de x e y. En la cartografía, el principio está el mismo salvo que estas flechas (ejes) se son desplazadas al centro de la casilla, encerrando el espacio del gráfico. Las marcas de verificación (por ejemplo, -2, -1, 0, 1, 2) son dibujadas en la casilla que encierra esos ejes, que no se ha movido al origen, es decir, (x=0,y=0,z=0).
La dirección de la flecha z puede ser hacia arriba, hacia fuera o cruzada. Solo es cuestión de elegir qué orientación te resulte más fácil de entender.
Ejemplo de gráfico 3D
Aquí está un gráfico de ejemplo. Dibujaremos la misma curva senoidal que dibujamos en el plano cartesiano plano. Pero aquí pondremos z al valor constante 0. Así, todos los puntos son en el hiperplano (x,y,0).
Esto crea la ilusión del espacio 3D, haciendo que nuestro gráfico parezca flotar en el espacio. Ese es el objetivo de hacer gráficos 3D: añadir un eje más a la presentación visual. Por supuesto, los humanos no pueden Ve ninguna dimensión más allá de tres, y desde luego no cuatro dimensiones.
Como este gráfico están una curva, podemos simplemente utilizar plot(), ya que no tenemos saltos de apuntamiento por todas partes. (Si lo tuviéramos, probablemente utilizaríamos scatter()).
Primero colocamos el lienzo en 3D. Y este método nos da acceso al objeto axe:
from mpl_toolkits.mplot3d import Axes3D
ax = fig.gca(projection='3d')
Aquí pondremos z, escrito como zs, en 0. Así que este están el gráfico de (x,y,0). zdir significa en qué dirección a 3D. El tamaño por defecto podría ser demasiado pequeño de otro modo.
Entonces podemos utilizar el método plot():
fig = plt.figure(figsize=(10,10))
ax.plot(x,y,'bo', zs=0, zdir='y')
Aquí está el código completo. El resto del código lo utilizamos para mostrar el origen, punto (0,0,0), en el centro para que sea más fácil de ver.
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
x = np.arange(-5,5,0.1)
y = np.sin(x)
fig = plt.figure(figsize=(10,10))
ax = fig.gca(projection='3d')
ax.plot(x,y,'bo', zs=0, zdir='y')
origin = [0,0,0]
ax.text(origin[0],origin[0],origin[0],"origin",size=20)
ax.set_xlabel('X',labelpad=10,fontsize='large')
ax.set_ylabel('Y',labelpad=10,fontsize='large')
ax.set_zlabel('Z',labelpad=10,fontsize='large')
fig.show()
Por supuesto, los científicos de datos no son graficando funciones la mayoría de las veces. Son graficando arrays. Pero usar funciones están la forma más fácil de ilustrarlo, ya que la mayoría de los programadores son familiarizados con ellas.
Guía de visualización de datos
- La guía para principiantes en visualización de datos
- Introducción a las bases de datos de grafos
- Utiliza casos para bases de datos de grafos
- Introducción a la base de datos de grafos Neo4j
- Consultas a la base de datos de grafos Neo4j
- Explicación de los diagramas de dispersión y líneas de Matplotlib
- Cómo añadir subtramas en Matplotlib
- Escala logarítmica de Matplotlib
- Uso de Matplotlib para dibujar gráficos y diagramas
- Cómo dibujar gráficos 3D con Matplotlib
- Plotly Python Tutorial
- Habilitando a los científicos de datos ciudadanos
Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.