3D剧情go.Surface,surface没有出现

问题描述 投票:0回答:1

我正在尝试绘制四个 3D 表面,但其中一个没有显示。但是我想我对出现的三个做了同样的事情。

我尝试重塑我的数据或修改范围和值,我确保所有数据都具有相同的类型和维度。没有出现的是row=1,col=1,左上;轴出现了,我没有错误消息。

提前谢谢你!

这是我的代码:

import plotly.graph_objects as go
from plotly.subplots import make_subplots
from pylab import*
import pandas as pd
import numpy as np


# Initialize figure with 4 3D subplots
fig = make_subplots(
    rows=2, cols=2,
    specs=[[{'type': 'surface'}, {'type': 'surface'}],
           [{'type': 'surface'}, {'type': 'surface'}]])


xrange = np.linspace(0, 90, 344)
yrange = np.linspace(0, 100 , 344)
zrange = np.linspace(0, 7000, 344)

# Generate data
x = np.linspace(-5, 90, 10)
y = np.linspace(-5, 60, 10)
xGrid, yGrid = np.meshgrid(y, x)
z = xGrid ** 3 + yGrid ** 3

# adding surfaces to subplots.
fig.add_trace(
    go.Surface(x=xrange, y=yrange, z=zrange, colorscale='Viridis', showscale=False),
    row=1, col=1)

fig.add_trace(
    go.Surface(x=x, y=y, z=z, colorscale='RdBu', showscale=False),
    row=1, col=2)

fig.add_trace(
    go.Surface(x=x, y=y, z=z, colorscale='YlOrRd', showscale=False),
    row=2, col=1)

fig.add_trace(
    go.Surface(x=x, y=y, z=z, colorscale='YlGnBu', showscale=False),
    row=2, col=2)

fig.update_layout(
    title_text='3D subplots with different colorscales',
    height=800,
    width=800
)

fig.show()
python plot 3d plotly surface
1个回答
0
投票

注意z轴形状的不同

import plotly.graph_objects as go
from plotly.subplots import make_subplots
import numpy as np

# Initialize figure with 4 3D subplots
fig = make_subplots(
rows=2, cols=2,
specs=[[{'type': 'surface'}, {'type': 'surface'}],
       [{'type': 'surface'}, {'type': 'surface'}]])

xrange = np.linspace(0, 90, 344)
yrange = np.linspace(0, 100, 344)
zrange = np.linspace(0, 7000, 344)
# print(zrange.shape)
# (344,)
xg, yg = np.meshgrid(yrange, xrange)
zg = xg ** 2 + yg *10 # just for example
# print(zg.shape)
# (344, 344)

# Generate data
x = np.linspace(-5, 90, 10)
y = np.linspace(-5, 60, 10)
xGrid, yGrid = np.meshgrid(y, x)
z = xGrid ** 3 + yGrid ** 3

# adding surfaces to subplots.
fig.add_trace(go.Surface(x=xrange, y=yrange, z=zg, colorscale='Viridis', showscale=False), row=1, col=1)
fig.add_trace(go.Surface(x=x, y=y, z=z, colorscale='RdBu', showscale=False), row=1, col=2)
fig.add_trace(go.Surface(x=x, y=y, z=z, colorscale='YlOrRd', showscale=False), row=2, col=1)
fig.add_trace(go.Surface(x=x, y=y, z=z, colorscale='YlGnBu', showscale=False), row=2, col=2)

fig.update_layout(
    title_text='3D subplots with different colorscales',
    height=800,
    width=800
)

fig.show()

这确实显示了所有 4、3D 表面。

© www.soinside.com 2019 - 2024. All rights reserved.