Проблема с размером виджета вкладки в Jupyter Notebook - PullRequest
0 голосов
/ 06 мая 2020

У меня проблема с размером второго графика, добавленного в виджет вкладки, который не соответствует размеру всего контейнера: вот по коду

''' output_co2 = widgets.Output()
output_co = widgets. Output()

tab = widgets.Tab(children=[output_co2, output_co],
                  layout=widgets.Layout(width='100%', height='100%'))
tab.set_title(0, 'CO2')
tab.set_title(1, 'CO')
display(tab)

with output_co2:
    fig = go.Figure()
    fig.add_trace(go.Scatter(x=vehicleData['distance_m']/1000,
                             y=vehicleData['co_gs'],
                             name='CO [g/s]',
                             mode="lines",
                             line=dict(
                                       width=2),
    fig.show()
with output_co:
    fig = go.Figure()
    fig.add_trace(go.Scatter(x=vehicleData['distance_m']/1000,
                             y=vehicleData['co_gs'],
                             name='CO [g/s]',
                             mode="lines",
                             line=dict(
                                       width=2),
     fig.show() '''

введите описание изображения здесь введите описание изображения здесь

1 Ответ

0 голосов
/ 07 мая 2020

При использовании plotly вам необходимо использовать go.FigureWidget() вместо go.Figure(), см. здесь . Примерно так:

output_co2 = widgets.Output()
output_co = widgets.Output()

tab = widgets.Tab(children=[output_co2, output_co])
tab.set_title(0, 'CO2')
tab.set_title(1, 'CO')
display(tab)

with output_co2:
    fig = go.FigureWidget() # HERE
    fig.add_trace(go.Scatter(x=vehicleData['distance_m']/1000,
                             y=vehicleData['co_gs'],
                             name='CO [g/s]',
                             mode="lines",
                             line_width=2))
    fig.show()

with output_co:
    fig = go.FigureWidget() # AND HERE
    fig.add_trace(go.Scatter(x=vehicleData['distance_m']/1000,
                             y=vehicleData['co_gs'],
                             name='CO [g/s]',
                             mode="lines",
                             line_width=2))
    fig.show()

Альтернатива: с plotly вы можете использовать go.FigureWidget() напрямую вместо widgets.Output()

fig1 = go.FigureWidget()
fig2 = go.FigureWidget()

tab = widgets.Tab(children=[fig1, fig2])
tab.set_title(0, 'CO2')
tab.set_title(1, 'CO')

fig1.add_trace(go.Scatter(x=vehicleData['distance_m']/1000,
                             y=vehicleData['co_gs'],
                             mode="lines",
                             line_width=2))

fig2.add_trace(go.Scatter(x=vehicleData['distance_m']/1000,
                             y=vehicleData['co_gs'],
                             mode="lines",
                             line_width=2))
display(tab)
...