我正在尝试绘制四个 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()
注意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()