Cómo dibujar gráficos 3D usando Python y Plotly

Este artículo se comparte desde la comunidad de la nube de Huawei " Plotly Drawing 3D Graphics " por Lemony Hug.

En el campo de la visualización de datos, los gráficos 3D son una herramienta poderosa para mostrar relaciones y estructuras complejas entre datos. El lenguaje Python tiene una rica biblioteca de visualización de datos, entre la cual Plotly es una herramienta popular que proporciona la función de dibujar gráficos tridimensionales de alta calidad. Este artículo presentará cómo usar Python y Plotly para dibujar varios tipos de gráficos 3D y brindará ejemplos de código.

Preparación

Primero, asegúrese de tener instalada la biblioteca Plotly. Puedes usar el comando pip para instalar:

instalación de pip gráficamente

A continuación, usaremos plotly.graph_objectslos módulos de Plotly para crear gráficos 3D. También usaremos numpyla biblioteca para generar algunos datos de muestra.

importar plotly.graph_objects sobre la marcha
importar numpy como np

Dibuja un diagrama de dispersión

Primero, dibujaremos un diagrama de dispersión simple. Supongamos que tenemos algunos datos tridimensionales almacenados en x_datay .y_dataz_data

# Generar datos de muestra
np.semilla.aleatoria(42)
n_puntos = 100
x_data = np.random.rand(n_puntos)
y_data = np.random.rand(n_puntos)
z_data = np.random.rand(n_puntos)

#Crea un diagrama de dispersión
fig = go.Figure(data=[go.Scatter3d(x=x_data, y=y_data, z=z_data, mode='marcadores')])
fig.update_layout(scene=dict(xaxis_title='X', yaxis_title='Y', zaxis_title='Z'),
                  título = 'Gráfico de dispersión 3D')
figura.mostrar()

El código anterior generará un diagrama de dispersión tridimensional simple que muestra la distribución de puntos de datos generados aleatoriamente en un espacio tridimensional.

Dibujar gráfico de superficie

A continuación, dibujaremos un gráfico de superficie. Supongamos que tenemos una función f(x, y)y queremos visualizar su superficie en tres dimensiones.

# definir función
definición f(x,y):
    devolver np.sin(x) * np.cos(y)

# Generar datos de cuadrícula
x_grid = np.linspace(0, 2*np.pi, 50)
y_grid = np.linspace(0, 2*np.pi, 50)
x_grid, y_grid = np.meshgrid(x_grid, y_grid)
cuadrícula_z = f(cuadrícula_x, cuadrícula_y)

#Crear trazado de superficie
fig = ir.Figura(datos=[go.Surface(z=z_grid, x=x_grid, y=y_grid)])
fig.update_layout(scene=dict(xaxis_title='X', yaxis_title='Y', zaxis_title='Z'),
                  título = 'Gráfico de superficie 3D')
figura.mostrar()

El código anterior generará un gráfico de superficie 3D que muestra la superficie de la función.

Dibujar estructuras alámbricas

Finalmente, dibujaremos una estructura alámbrica que muestre la continuidad de los datos.

# Generar datos de estructura alámbrica
theta = np.linspace(-4*np.pi, 4*np.pi, 100)
línea_z = np.linspace(-2, 2, 100)
línea_x = línea_z * np.sin(theta)
línea_y = línea_z * np.cos(theta)

#Crear estructura alámbrica
fig = go.Figure(data=[go.Scatter3d(x=x_line, y=y_line, z=z_line, mode='lines')])
fig.update_layout(scene=dict(xaxis_title='X', yaxis_title='Y', zaxis_title='Z'),
                  título = 'Gráfico de estructura alámbrica 3D')
figura.mostrar()

El código anterior generará un gráfico 3D que muestra la estructura alámbrica.

A través de los ejemplos anteriores, hemos mostrado cómo usar Python y Plotly para dibujar varios tipos de gráficos tridimensionales. Puede personalizar aún más estos gráficos para adaptarlos a sus necesidades y explorar las funciones más ricas de la biblioteca de Plotly. ¡Feliz conspiración!

Dibujar un gráfico de barras en 3D

Además de los diagramas de dispersión, los diagramas de superficie y los diagramas de estructura alámbrica, también podemos dibujar gráficos de barras 3D para mostrar diferencias y relaciones entre datos.

# Generar datos de muestra
categorías = ['A', 'B', 'C', 'D']
valores = np.random.randint(1, 10, tamaño=(len(categorías), len(categorías)))
x_bar, y_bar = np.meshgrid(np.arange(len(categorías)), np.arange(len(categorías)))
x_bar = x_bar.aplanar()
y_bar = y_bar.flatten()
z_bar = np.zeros_like(x_bar)

#Establecer la altura del gráfico de barras
alturas_barra = valores.aplanar()

#Crear gráfico de barras 3D
fig = go.Figure(data=[go.Bar3d(x=x_bar, y=y_bar, z=z_bar, dx=1, dy=1, dz=bar_heights)])
fig.update_layout(scene=dict(xaxis_title='X', yaxis_title='Y', zaxis_title='Z'),
                  título = 'Gráfico de barras 3D')
figura.mostrar()

El código anterior generará un gráfico de barras tridimensional que muestra la relación entre varias categorías y valores.

Estilo gráfico personalizado

Plotly proporciona una gran cantidad de opciones de personalización para ajustar el estilo, el diseño y la apariencia de los gráficos. Puede modificar el color, el tipo de línea, la etiqueta y otras propiedades de los gráficos según sea necesario para satisfacer necesidades de visualización específicas.

# Estilo gráfico personalizado
fig.update_traces(marker=dict(color='rgb(255, 127, 14)', tamaño=10),
                  selector=dict(modo='marcadores'))
fig.update_layout(escena=dict(xaxis=dict(fondocolor="rgb(200, 200, 230)",
                                       gridcolor="blanco",
                                       mostrarfondo=Verdadero,
                                       zerolinecolor="blanco"),
                             yaxis=dict(fondocolor="rgb(230, 200,230)",
                                       gridcolor="blanco",
                                       mostrarfondo=Verdadero,
                                       zerolinecolor="blanco"),
                             zaxis=dict(fondocolor="rgb(230, 230,200)",
                                       gridcolor="blanco",
                                       mostrarfondo=Verdadero,
                                       zerolinecolor="blanco")),
                  title='Gráfico de dispersión 3D personalizado')
figura.mostrar()

Gráficos 3D interactivos

Plotly también admite la creación de gráficos tridimensionales interactivos, lo que permite a los usuarios explorar datos mediante la interacción del mouse. A continuación se muestra un ejemplo de un diagrama de dispersión interactivo:

# Crea un diagrama de dispersión interactivo
fig = go.Figure(data=[go.Scatter3d(x=x_data, y=y_data, z=z_data, mode='marcadores')])
fig.update_layout(scene=dict(xaxis_title='X', yaxis_title='Y', zaxis_title='Z'),
                  title='Gráfico de dispersión 3D interactivo')
figura.mostrar()

Al pasar el mouse sobre los puntos de datos, los usuarios pueden ver el valor numérico específico de cada punto de datos para obtener una comprensión más profunda de los datos.

Exportar gráficos

Una vez que haya creado un gráfico 3D con el que esté satisfecho, puede exportarlo como una imagen estática o un archivo HTML interactivo para compartirlo y presentarlo fácilmente. Plotly proporciona una cómoda función de exportación que le permite guardar fácilmente gráficos en archivos locales.

#Exportar gráficos como imágenes estáticas
fig.write_image("3d_plot.png")

# Exportar gráficos como archivos HTML interactivos
fig.write_html("3d_plot.html")

Explora más funciones

Además de las funciones presentadas en este artículo, Plotly también proporciona muchas otras funciones poderosas, como animación, sprites, control de cámara, etc., para mejorar y personalizar aún más sus gráficos tridimensionales. Puede obtener más información sobre estas características y aplicarlas a sus proyectos consultando la documentación oficial o consultando tutoriales en línea.

Resumir

A través de este artículo, aprendimos cómo usar Python y la biblioteca Plotly para dibujar varios tipos de gráficos tridimensionales, incluidos diagramas de dispersión, diagramas de superficie, diagramas de estructura alámbrica y gráficos de barras. Aprendimos los pasos básicos y los ejemplos de código necesarios para dibujar cada tipo de gráfico y exploramos cómo personalizar estilos de gráficos, crear gráficos interactivos y exportar gráficos como imágenes estáticas o archivos HTML interactivos. Con estas técnicas y características, podemos crear fácilmente gráficos 3D atractivos y útiles en el campo de la visualización de datos para comprender y analizar mejor los datos. Ya sea en investigación científica, aplicaciones de ingeniería o análisis de datos, los gráficos 3D son herramientas poderosas que nos ayudan a descubrir patrones y relaciones entre datos y presentar resultados e ideas de investigación. Al explorar y aplicar continuamente las funciones de las bibliotecas Python y Plotly, podemos mejorar aún más la efectividad y eficiencia de la visualización de datos, aportando más valor y logros a nuestro trabajo y proyectos.

 

Haga clic para seguir y conocer las nuevas tecnologías de Huawei Cloud lo antes posible ~

 

El equipo de inteligencia artificial de China de Microsoft empacó colectivamente y se fue a los Estados Unidos, involucrando a cientos de personas. ¿Cuántos ingresos puede generar un proyecto desconocido de código abierto? Huawei anunció oficialmente que la posición de Yu Chengdong se ajustó en la estación espejo de código abierto de la Universidad de Ciencia y Tecnología de Huazhong. ¡Los estafadores abrieron oficialmente el acceso a la red externa y utilizaron TeamViewer para transferir 3,98 millones! ¿Qué deberían hacer los proveedores de escritorio remoto? La primera biblioteca de visualización front-end y fundador del conocido proyecto de código abierto de Baidu, ECharts, un ex empleado de una conocida empresa de código abierto que "se fue al mar" dio la noticia: después de ser desafiado por sus subordinados, el técnico El líder se puso furioso y grosero y despidió a la empleada embarazada. OpenAI consideró permitir que la IA genere contenido pornográfico. Microsoft informó a The Rust Foundation que donó 1 millón de dólares estadounidenses. Por favor, dígame cuál es el papel de time.sleep(6) aquí. ?
{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/4526289/blog/11148794
Recomendado
Clasificación