使用plotly dash 画3d立方体

关于plotly3D 方面(3d charts in Python)没有可以直接画出立方体的方案,所以使用Mesh (https://plotly.com/python/3d-mesh/)画出多个三角形,最终拼出一个立方体,下面是代码


import plotly.graph_objects as go
from dash import Dash, html, dcc


app = Dash(__name__)
def getfig():
    fig = go.Figure(data=[
        go.Mesh3d(
            # 立方体的8个顶点 第0个顶点表示为(x[0],y[0],z[0])
            # [0,1,2,3,4,5,6,7],
            x=[0,0,1,1,0,0,1,1],
            y=[0,1,1,0,0,1,1,0],
            z=[0,0,0,0,1,1,1,1],

            # (i[0]=0,j[0]=1,k[0]=2)表示第0个面是由顶点0,1,2组成的(三角形),其为了方便用了12个面进行表示,其中立方体一个面用2个三角形表示。下面的i,j,k可以直接复制使用(需要与上面的x,y,z对照找到对应面才行)
            i=[0, 0,4,4,1,5,0,4,1,1,2,6],
            j=[1, 2,5,6,2,2,3,3,5,4,3,3],
            k=[2, 3,6,7,5,6,4,7,4,0,6,7],
            color="pink",
            showscale=True
        ),

    ])
    return fig

app.layout = html.Div(
    html.Div(dcc.Graph(figure=getfig()))
)

if __name__ == '__main__':
    app.run_server(debug=True)
使用plotly dash 画3d立方体_第1张图片

多个立方体效果:

使用plotly dash 画3d立方体_第2张图片

你可能感兴趣的:(plotly)