Pessoal, boa tarde!
Tentei copiar o código do gráfico animado e a linha do gráfico não está aparecendo quando aperto o play. Tentei no jupyter e no navegador (exportando a imagem em html) e não funcionou. O código é o seguinte:
import pandas as pd from matplotlib import pyplot as plt import plotly.express as px
df = pd.read_csv("..\resources\canadian_immegration_data.csv")
df.set_index('Country', inplace=True) anos = [str(n) for n in range(1980, 2014)] brasil = df.loc['Brazil', anos] brasil_dict = {'ano': brasil.index.tolist(), 'imigrantes': brasil.values.tolist()} dados_brasil = pd.DataFrame(brasil_dict)
import plotly.graph_objs as go
Criando uma figura
fig = go.Figure()
Adicionando a linha do gráfico e definindo a espessura da linha
fig.add_trace( go.Scatter(x=[dados_brasil['ano'].iloc[0]], y=[dados_brasil['imigrantes'].iloc[0]], mode='lines', name='Imigrantes', line=dict(width=4)) )
Definindo as configurações de layout
fig.update_layout( title=dict( text='Imigração do Brasil para o Canadá no período de 1980 a 2013', x=0.12, xanchor='left', font=dict(size=20) ), xaxis=dict(range=[1980, 2013], autorange=False, title='Ano'), yaxis=dict(range=[0, 3000], autorange=False, title='Número de imigrantes'), updatemenus=[dict( type='buttons', showactive=False, buttons=[dict( label='Play', method='animate', args=[None, {'frame': {'duration': 100, 'redraw': True}, 'fromcurrent': True}] )] )], width=1000, height=500 )
Definir as configurações de animação
frames = [go.Frame(data=[go.Scatter(x=dados_brasil['ano'].iloc[:i+1], y=dados_brasil['imigrantes'].iloc[:i+1])]) for i in range(len(dados_brasil))] fig.frames = frames
fig.write_html('imigracao_america_sul.html')
Mostrando a figura
fig.show()