Gráficos de volumen 3D utilizando Plotly en Python

Plotly es una biblioteca de Python que se utiliza para diseñar gráficos, especialmente gráficos interactivos. Puede trazar varios gráficos y cuadros como histograma, diagrama de barras, diagrama de caja, diagrama de dispersión y muchos más. Se utiliza principalmente en el análisis de datos, así como en el análisis financiero. Plotly es una biblioteca de visualización interactiva.

Gráfico de volumen en Plotly

Un gráfico de volumen es un gráfico con go.volume que muestra muchas isosuperficies parcialmente transparentes para representar el volumen. El parámetro de escala de opacidad de go. El volumen da como resultado un efecto de profundidad y genera una mejor representación del volumen. La visualización de volumen tridimensional es un método que permite observar y manipular datos volumétricos en 3D. Representa objetos 3D en términos de superficies y bordes aproximados por polígonos y líneas.

Sintaxis: plotly.graph_objects.3d_Volume(arg=Ninguno, autocolorscale=Ninguno, caps=Ninguno, cauto=Ninguno, cmax=Ninguno, cmid=Ninguno, cmin=Ninguno, coloraxis=Ninguno, colorbar=Ninguno, colorscale=Ninguno, contour= Ninguno, customdata=Ninguno, customdatasrc=Ninguno, flatshading=Ninguno, hoverinfo=Ninguno, hoverinfosrc=Ninguno, hoverlabel=Ninguno, hovertemplate=Ninguno, hovertemplatesrc=Ninguno, hovertext=Ninguno, hovertextsrc=Ninguno, ids=Ninguno, idssrc=Ninguno, isomax=Ninguno, isomin=Ninguno, legendgroup=Ninguno, iluminación=Ninguno, lightposition=Ninguno, meta=Ninguno, metasrc=Ninguno, name=Ninguno, opacity=Ninguno, opacityscale=Ninguno, reversescale=Ninguno, scene=Ninguno, showlegend= Ninguno, showscale=Ninguno, slices=Ninguno, spaceframe=Ninguno, stream=Ninguno, surface=Ninguno, text=Ninguno, textsrc=Ninguno, uid=Ninguno, uirevision=Ninguno, value=Ninguno, valuesrc=Ninguno, visible=Ninguno, x=Ninguno, xsrc=Ninguno, y=Ninguno, ysrc=Ninguno, z=Ninguno, zsrc=Ninguno, **kwargs)

Parámetros:

x – Establece las coordenadas X de los vértices en el eje X.

y – Establece las coordenadas Y de los vértices en el eje Y.

z – Establece las coordenadas Z de los vértices en el eje Z.

valor : establece la cuarta dimensión (valor) de los vértices.

Ejemplo:

Python3

import plotly.graph_objects as go
import numpy as np
  
  
x1 = np.linspace(-4, 4, 9) 
y1 = np.linspace(-5, 5, 11) 
z1 = np.linspace(-5, 5, 11) 
  
X, Y, Z = np.meshgrid(x1, y1, z1)
  
values = (np.sin(X**2 + Y**2))/(X**2 + Y**2)
  
fig = go.Figure(data=go.Volume(
    x=X.flatten(),
    y=Y.flatten(),
    z=Z.flatten(),
    value=values.flatten(),
    opacity=0.1,
    ))
  
fig.show()

Producción:

Personalización de tapas en gráfico de volumen

En forma gráfica, para una visualización más clara de la superficie interna, es posible que se pueda quitar la tapa. Las mayúsculas son visibles de forma predeterminada. 

Ejemplo 1:

Python3

import plotly.graph_objects as go
import plotly.express as px
import numpy as np
  
df = px.data.tips()
  
x1 = np.linspace(-4, 4, 9) 
y1 = np.linspace(-5, 5, 11) 
z1 = np.linspace(-5, 5, 11) 
  
X, Y, Z = np.meshgrid(x1, y1, z1)
  
values = (np.sin(X**2 + Y**2))/(X**2 + Y**2)
  
fig = go.Figure(data=go.Volume(
    x=X.flatten(),
    y=Y.flatten(),
    z=Z.flatten(),
    value=values.flatten(),
    opacity=0.1, 
    caps= dict(x_show=False, y_show=False, z_show=True),
    ))
fig.show()

Producción:

Ejemplo 2:

Python3

import plotly.graph_objects as go
import plotly.express as px
import numpy as np
  
df = px.data.tips()
  
x1 = np.linspace(-4, 4, 9) 
y1 = np.linspace(-5, 5, 11) 
z1 = np.linspace(-5, 5, 11) 
  
X, Y, Z = np.meshgrid(x1, y1, z1)
  
values = (np.sin(X**2 + Y**2))/(X**2 + Y**2)
  
fig = go.Figure(data=go.Volume(
    x=X.flatten(),
    y=Y.flatten(),
    z=Z.flatten(),
    value=values.flatten(),
    opacity=0.1,
    caps= dict(x_show=False, y_show=True, z_show=False),
    ))
fig.show()

Producción:

Escala de opacidad personalizada

En plotly, es posible definir la escala de opacidad personalizada, asignando valores escalares proporcionales a los valores de opacidad. El valor se da de 0 a 1 y la opacidad máxima la proporciona la palabra clave opacity. 

Ejemplo:

Python3

import plotly.graph_objects as go
import plotly.express as px
import numpy as np
  
df = px.data.tips()
  
x1 = np.linspace(-4, 4, 9) 
y1 = np.linspace(-5, 5, 11) 
z1 = np.linspace(-5, 5, 11) 
  
X, Y, Z = np.meshgrid(x1, y1, z1)
  
values = (np.sin(X**2 + Y**2))/(X**2 + Y**2)
  
fig = go.Figure(data=go.Volume(
    x=X.flatten(),
    y=Y.flatten(),
    z=Z.flatten(), 
    isomin=-0.5,
    isomax=0.5,
    value=values.flatten(),
    opacity=0.1, 
    opacityscale=[[-0.5, 1], [-0.2, 0], [0.2, 0], [0.5, 1]],
    colorscale='RdBu'
    ))
  
fig.show()

Producción:

Publicación traducida automáticamente

Artículo escrito por nishantsundriyal98 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 *