我正在绘制具有4个子图的图像,例如使用以下代码。 如何为每个子图添加标题?
import plotly.offline as py
import plotly.graph_objs as go
from plotly import tools
import numpy as np
x = np.linspace(-5, 80, 10)
y = np.linspace(-5, 60, 10)
xGrid, yGrid = np.meshgrid(y, x)
z = xGrid ** 3 + yGrid ** 3
scene = dict(
xaxis=dict(
gridcolor='rgb(255, 255, 255)',
zerolinecolor='rgb(255, 255, 255)',
showbackground=True,
backgroundcolor='rgb(230, 230,230)'
),
yaxis=dict(
gridcolor='rgb(255, 255, 255)',
zerolinecolor='rgb(255, 255, 255)',
showbackground=True,
backgroundcolor='rgb(230, 230,230)'
),
zaxis=dict(
gridcolor='rgb(255, 255, 255)',
zerolinecolor='rgb(255, 255, 255)',
showbackground=True,
backgroundcolor='rgb(230, 230,230)'
)
)
fig = tools.make_subplots(rows=2, cols=2,
specs=[[{'is_3d': True}, {'is_3d': True}],
[{'is_3d': True}, {'is_3d': True}]])
# adding surfaces to subplots.
fig.append_trace(dict(type='surface', x=x, y=y, z=z, colorscale='Viridis',
scene='scene1', showscale=False), 1, 1)
fig.append_trace(dict(type='surface', x=x, y=y, z=z, colorscale='RdBu',
scene='scene2', showscale=False), 1, 2)
fig.append_trace(dict(type='surface', x=x, y=y, z=z, colorscale='YlOrRd',
scene='scene3', showscale=False), 2, 1)
fig.append_trace(dict(type='surface', x=x, y=y, z=z, colorscale='YlGnBu',
scene='scene4', showscale=False), 2, 2)
fig['layout'].update(title='subplots with different colorscales',
height=800, width=800)
fig['layout']['scene1'].update(scene)
fig['layout']['scene2'].update(scene)
fig['layout']['scene3'].update(scene)
fig['layout']['scene4'].update(scene)
py.plot(fig, filename='multiple_plots.html')
我试图替换
fig = tools.make_subplots(rows=2, cols=2, specs=[[{'is_3d': True}, {'is_3d':
True}], [{'is_3d': True}, {'is_3d': True}]])
带有以下
fig = tools.make_subplots(rows=2, cols=2, subplot_titles= ('Plot1','Plot2','Plot3','Plot4'),specs=[[{'is_3d': True}, {'is_3d': True}],[{'is_3d': True}, {'is_3d': True}]])
它给我以下错误
IndexError Traceback(最近一次通话最近) 在()中 33图= tools.make_subplots(rows = 2,cols = 2,subplot_titles =('p1','p2','p3','p4'), 34 specs = [[[{'is_3d':True},{'is_3d':True}], ---> 35 [{'is_3d':True},{'is_3d':True}]]) 36 37#在子图中添加曲面。
〜\ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ plotly \ tools.py在make_subplots中(行,cols,shared_xaxes,shared_yaxes,start_cell,print_grid,** kwargs) 1373通过 1374其他: -> 1375 plot_titles.append({'y':subtitle_pos_y [index], 1376'xref':'paper', 1377'x':subtitle_pos_x [index],
IndexError:列表索引超出范围
我该如何解决? 谢谢
答案 0 :(得分:0)
对我来说,这似乎是个错误。 Here对于3d图似乎从未附加list_of_domains
。当我添加kwarg shared_xaxes=True
时,它对我有用。
fig = tools.make_subplots(rows=2, cols=2,
specs=[[{'is_3d': True}, {'is_3d': True}],
[{'is_3d': True}, {'is_3d': True}]],
subplot_titles=('a','b','c','d'), shared_xaxes=True)