¿Cómo animar un gráfico 3D usando Matplotlib?

Requisitos previos: Matplotlib , NumPy

Las representaciones gráficas son siempre fáciles de entender y se adoptan y son preferibles a cualquier comunicación escrita o verbal. Con Matplotlib podemos dibujar diferentes tipos de datos gráficos. En este artículo, intentaremos comprender cómo podemos crear un hermoso gráfico usando matplotlib y crear un gráfico animado en 3D usando Matplotlib.

Acercarse:

  • Importar módulo requerido.
  • Crear una figura 3d
  • Crear datos de muestra
  • Animar 360 vistas del gráfico.
  • Mostrar gráfico.

Paso 1: Importar biblioteca.

Python3

from numpy import linspace
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d

Paso 2: El propósito de usar plt.figure() es crear un objeto de figura. Usaremos plt.axes() para crear conjuntos separados de ejes en los que dibujará cada uno.

Python3

from numpy import linspace
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d
 
 
fig = plt.figure(figsize = (8,8))
ax = plt.axes(projection = '3d')

Paso 3: En este paso, crearemos nuestros datos y trazaremos diferentes gráficos.

Python3

from numpy import linspace
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d
from scipy import signal
 
fig = plt.figure(figsize = (8,8))
ax = plt.axes(projection='3d')
 
t = np.linspace(0, 1, 1000, endpoint=True)
ax.plot3D(t, signal.square(2 * np.pi * 5 * t))

Paso 4: movimiento de 360 ​​grados del gráfico.

view_init(elev=, azim=) Esto se puede usar para rotar los ejes programáticamente. ‘elev’ almacena el ángulo de elevación en el plano z. ‘azim’ almacena el ángulo de acimut en el constructor x,y plane.D. La función dibujar() en el módulo pyplot de la biblioteca matplotlib se usa para volver a dibujar la figura actual

Python3

from numpy import linspace
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d
from scipy import signal
 
fig = plt.figure(figsize = (8,8))
ax = plt.axes(projection='3d')
 
t = np.linspace(0, 1, 1000, endpoint=True)
ax.plot3D(t, signal.square(2 * np.pi * 5 * t))
 
for angle in range(0, 360):
   ax.view_init(angle,30)
   plt.draw()
   plt.pause(.001)

Ejemplo 1: En este ejemplo, trazamos una onda cuadrada y veremos su vista de 360 ​​grados.

Linspace(): una función de linspace es una herramienta en Python para crear secuencias numéricas. La función plot3D() de la biblioteca matplotlib se usa para hacer un trazado 3D.

Python3

from numpy import linspace
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d
from scipy import signal
 
# Creating 3D figure
fig = plt.figure(figsize = (8, 8))
ax = plt.axes(projection = '3d')
 
# Creating Dataset
t = np.linspace(0, 1, 1000, endpoint = True)
ax.plot3D(t, signal.square(2 * np.pi * 5 * t))
 
# 360 Degree view
for angle in range(0, 360):
   ax.view_init(angle, 30)
   plt.draw()
   plt.pause(.001)
     
plt.show()

Producción:

Ejemplo 2: En este ejemplo, trazamos un gráfico en espiral y veremos su vista de 360 ​​grados.

Python3

from numpy import linspace
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d
from scipy import signal
 
# Creating 3D figure
fig = plt.figure(figsize = (8,8))
ax = plt.axes(projection='3d')
 
# Creating Dataset
z = np.linspace(0, 15, 1000)
x = np.sin(z)
y = np.cos(z)
ax.plot3D(x, y, z, 'green')
 
# 360 Degree view
for angle in range(0, 360):
    ax.view_init(angle, 30)
    plt.draw()
    plt.pause(.001)
 
plt.show()

Producción:

Ejemplo 3: En este ejemplo, mostraremos el gráfico de parábola.

plt.rcParams(axes.prop_cycle): – Llamar a ‘axes.prop_cycle’ que devuelve un itertools.cycle.
Linspace(): una función de linspace es una herramienta en Python para crear secuencias numéricas.

Python3

from numpy import linspace
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d
from scipy import signal
 
# Creating 3D figure
fig = plt.figure(figsize = (8,8))
ax = plt.axes(projection = '3d')
 
# Creating Dataset
color_cycle = plt.rcParams['axes.prop_cycle']()
x = linspace(0, 1, 51)
a = x*( 1 - x)   
b = 0.25 - a   
c = x*x*(1 - x)
d = 0.25-c   
 
ax.plot3D(x, a, **next(color_cycle))
 
# 360 Degree view
for angle in range(0, 360):
   ax.view_init(angle, 30)
   plt.draw()
   plt.pause(.001)
 
plt.show()

Producción:

Publicación traducida automáticamente

Artículo escrito por skrg141 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *