如何使用 plotly 定义子图的布局

how to define the layout for subplot using plotly

我使用下面的代码使用 plotly 包创建了一行两列的子图。但是两个 x 轴重叠了(见附件截图)。第一个地块的轴覆盖了两个地块。如何解决这个问题?我没有从 plotly 网站上看到一个很好的例子。另外如何删除图例?

import plotly
import plotly.graph_objs as go

def plot(plot_dic, width=1000, **kwargs):
    kwargs['output_type'] = 'div'
    plot_str = plotly.offline.plot(plot_dic, **kwargs)
    print('%%angular <div style=" width: %spx"> %s </div>' % ( width, plot_str))

# Create a trace
trace0 = go.Scatter(
    x = np.arange(100)+1,
    y = np.round(df[df['']=='value'].iloc[:,1:]*100, 2).values.reshape(100),
    mode = 'lines+markers',
)
trace1 = go.Scatter(
    x = np.arange(100)+1,
    y = np.cumsum(np.round(df[df['']=='value'].iloc[:,1:]*100, 2).values).reshape(100),
    mode = 'lines+markers',
)

fig = plotly.tools.make_subplots(rows=1, cols=2, subplot_titles=('Variance', 'Cumulative Variance')
                                #  ,shared_xaxes=True, shared_yaxes=True
                                 )
fig['layout'].update(height=500, width=800, title="Plot title"
                    ,xaxis=dict(range = [1, 400],
                                dtick = 40,
                                showticklabels=True,
                                tickfont=dict(family='Arial, sans-serif', size=14, color='black'),
                                exponentformat='e',
                                showexponent='all')
                    ,xaxis1=dict(range = [1, 400],
                                dtick = 40,
                                showticklabels=True,
                                tickfont=dict(family='Arial, sans-serif', size=14, color='black'),
                                exponentformat='e',
                                showexponent='all')                                    
    )

fig.append_trace(trace0, 1, 1)
fig.append_trace(trace1, 1, 2)

plot(fig, width=600, show_link=False)

另一种创建子图但避免重叠的方法 x-axis 是将子图改为 2 行 1 列。

fig = plotly.tools.make_subplots(rows=2, cols=1, subplot_titles=('Variance', 'Cumulative Variance')
                            #  ,shared_xaxes=True, shared_yaxes=True)