К сожалению, исходя из следующего [ответа] [1], кажется, что автоматическое масштабирование оси x и оси y отключено с помощью объекта go .Candlestick (), поэтому оси не масштабируются должным образом, поскольку анимация прогрессирует.
import plotly.graph_objects as go
import datetime as dt
import pandas as pd
from ipywidgets import widgets
from IPython.display import display
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv')
#df
#i Date AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume \
#0 2015-02-17 127.489998 128.880005 126.919998 127.830002 63152400
#1 2015-02-18 127.629997 128.779999 127.449997 128.720001 44891700
#....
# it might be useful to convert the Dates to datetime objects
df['Date'] = pd.to_datetime(df['Date'])
candlestick_data = []
for index, row in df.iterrows():
FiveDaysBlock = df.iloc[index:(index+5),]
candlestick_data.append(go.Candlestick(x=FiveDaysBlock['Date'],
open=FiveDaysBlock['AAPL.Open'], high=FiveDaysBlock['AAPL.High'],
low=FiveDaysBlock['AAPL.Low'], close=FiveDaysBlock['AAPL.Close'])
)
def update_fig(i):
fig = go.Figure(data=candlestick_data[i])
fig.update_layout(xaxis_rangeslider_visible=False)
fig.update_layout(transition_duration=2000)
fig.update_layout(autosize=True,width=700, height=250, margin=dict(l=1,r=1,b=20,t=20,pad=2))
# this doesn't quite work but it's close
interact(update_fig, i=100)
fig.show()