Requisitos previos: Matplotlib , NumPy
En este artículo, veremos cómo podemos ver nuestro gráfico desde diferentes ángulos. Aquí usamos tres métodos diferentes para trazar nuestro gráfico. Antes de comenzar veamos algunos conceptos básicos del módulo requerido para este objetivo.
- entumecido
Acercarse:
- Importar la biblioteca requerida.
- Crea una figura.
- Crear una hoja de datos.
- Cambiar el ángulo de la trama 3D
- Mostrar gráfico.
Paso 1: importar bibliotecas.
Python3
from mpl_toolkits import mplot3d import numpy as np import matplotlib.pyplot as plt
Paso 2: Trazado de la figura del eje 3-D.
Python3
from mpl_toolkits import mplot3d import numpy as np import matplotlib.pyplot as plt fig = plt.figure(figsize = (8, 8)) ax = plt.axes(projection = '3d')
Paso 3: Creación de una hoja de datos para todos los 3 ejes de la muestra.
Python3
from mpl_toolkits import mplot3d import numpy as np import matplotlib.pyplot as plt fig = plt.figure(figsize = (8, 8)) ax = plt.axes(projection = '3d') # Data for a three-dimensional line z = np.linspace(0, 15, 1000) x = np.sin(z) y = np.cos(z) ax.plot3D(x, y, z, 'green')
Paso 4: se puede usar view_init() para rotar los ejes mediante programación.
Sintaxis: view_init(elev, azim)
Parámetros:
- ‘elev’ almacena el ángulo de elevación en el plano z.
- ‘azim’ almacena el ángulo de acimut en el constructor x,y plane.D.
Python3
from mpl_toolkits import mplot3d import numpy as np import matplotlib.pyplot as plt fig = plt.figure(figsize = (8,8)) ax = plt.axes(projection = '3d') # Data for a three-dimensional line z = np.linspace(0, 15, 1000) x = np.sin(z) y = np.cos(z) ax.plot3D(x, y, z, 'green') ax.view_init(-140, 60)
A continuación se muestra la implementación completa:
Ejemplo 1: En este ejemplo, trazaremos un gráfico de curva con un ángulo elevado de -140 grados y un ángulo horizontal de 60 grados.
Python3
from mpl_toolkits import mplot3d import numpy as np import matplotlib.pyplot as plt fig = plt.figure(figsize = (8,8)) ax = plt.axes(projection = '3d') # Data for a three-dimensional line z = np.linspace(0, 15, 1000) x = np.sin(z) y = np.cos(z) ax.plot3D(x, y, z, 'green') ax.view_init(-140, 60) plt.show()
Producción:
Ejemplo 2: En este ejemplo, trazaremos un gráfico de curva con un ángulo elevado de 120 grados y un ángulo horizontal de 30 grados.
Python3
from mpl_toolkits import mplot3d import numpy as np import matplotlib.pyplot as plt fig = plt.figure(figsize = (8, 8)) ax = plt.axes(projection = '3d') # Data for a three-dimensional line z = np.linspace(0, 15, 1000) x = np.sin(z) y = np.cos(z) ax.plot3D(x, y, z, 'green') ax.view_init(120, 30) plt.show()
Producción:
Ejemplo 3: En este ejemplo, trazaremos un gráfico de placa rectangular con un ángulo de visión de 50 grados.
Python3
import numpy as np from matplotlib import pyplot as plt from mpl_toolkits.mplot3d import Axes3D from math import sin, cos fig = plt.figure(figsize = (8,8)) ax = fig.add_subplot(111, projection = '3d') #creating Datasheet y = np.linspace(-1, 1, 200) x = np.linspace(-1, 1, 200) x,y = np.meshgrid(x, y) #set z values z = x + y # rotate the samples by changing the value of 'a' a = 50 t = np.transpose(np.array([x, y, z]), ( 1, 2, 0)) m = [[cos(a), 0, sin(a)],[0, 1, 0], [-sin(a), 0, cos(a)]] X,Y,Z = np.transpose(np.dot(t, m), (2, 0, 1)) #label axes ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_zlabel('Z') #plot figure ax.plot_surface(X,Y,Z, alpha = 0.5, color = 'red') plt.show()
Producción: