Как определить макет для сюжета с использованием сюжета - PullRequest
0 голосов
/ 20 июня 2019

Я использовал приведенный ниже код для создания одного столбца с двумя столбцами с использованием plotly package. Но две оси X перекрываются (см. Прикрепленный скриншот). Первая ось графика покрывает оба графика. Как решить эту проблему? Я не вижу хорошего примера с сюжета сайта. Также как убрать легенду?

enter image description here

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)

1 Ответ

0 голосов
/ 01 июля 2019

Альтернативный способ создать подзаговор, но избежать наложения оси x, - вместо этого изменить подзаговор на 2 строки и 1 столбец.

fig = plotly.tools.make_subplots(rows=2, cols=1, subplot_titles=('Variance', 'Cumulative Variance')
                            #  ,shared_xaxes=True, shared_yaxes=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...