下面的代码片段负责对图形进行分箱和格式化,以便它显示为使用多个轨迹的堆叠 3D 图表。go.Scatter3D
and np.Histogram
。
输入是一个带有随机数的数据帧,使用np.random.normal(50, 5, size=(300, 4))
如果您可以使用以下内容,我们可以更多地讨论其他细节:
Plot 1: Angle 1
Plot 2: Angle 2
完整代码:
# imports
import numpy as np
import pandas as pd
import plotly.express as px
import plotly.graph_objects as go
import plotly.io as pio
pio.renderers.default = 'browser'
# data
np.random.seed(123)
df = pd.DataFrame(np.random.normal(50, 5, size=(300, 4)), columns=list('ABCD'))
# plotly setup
fig=go.Figure()
# data binning and traces
for i, col in enumerate(df.columns):
a0=np.histogram(df[col], bins=10, density=False)[0].tolist()
a0=np.repeat(a0,2).tolist()
a0.insert(0,0)
a0.pop()
a1=np.histogram(df[col], bins=10, density=False)[1].tolist()
a1=np.repeat(a1,2)
fig.add_traces(go.Scatter3d(x=[i]*len(a0), y=a1, z=a0,
mode='lines',
name=col
)
)
fig.show()