Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] Desafio 3

Eu testei essa forma, depois de muito pesquisar para resolver o problema 1 com a biblioteca plotly.express, ficou um pouco comlicado mas deu bom resultado:

import plotly.express as px

venda_min = df_ce.vendas.min()
venda_max = df_ce.vendas.max()

idx_min = df_ce[df_ce.vendas == venda_min].index[0]
idx_max = df_ce[df_ce.vendas == venda_max].index[0]

fig = px.line(df_ce, x=df_ce.index, y=df_ce.columns, markers=False,
labels={'vendas': 'Vendas', 'variable': ''},
color_discrete_sequence=[AZUL2])

fig.update_layout(width=1300, height=600, font_family='DejaVu Sans', font_size=15,
font_color=CINZA2, title_font_color=CINZA1, title_font_size=24,
title_text='Faturamento da loja de departamentos por semestre no estado do Ceará' +
'
De 2016 a 2019',
xaxis_title='Semestres', yaxis_title='', plot_bgcolor=CINZA5)

fig.update_yaxes(tickprefix='R$ ', ticksuffix=' mil') # range=[0, 120] definir limite

labels = ['S1
2016', 'S2
2016',
'S1
2017', 'S2
2017',
'S1
2018', 'S1
2018',
'S1
2019', 'S2
2019']
fig.update_xaxes(ticktext=labels, tickvals=df_ce.index)

fig.update_traces(mode="lines", hovertemplate="Período: %{x}
Faturamento: %{y}")

Anotação para o valor mínimo

fig.add_annotation(
x=idx_min, # Posição X da seta (índice da data)
y=venda_min, # Posição Y da seta (valor da venda)
text=f"O 1º Semestre de {idx_min.year},
registrou a única venda abaixo de R$ 40 mil",
showarrow=True,
arrowhead=1,
arrowsize=2,
arrowwidth=1,
arrowcolor=AZUL2,
font=dict(size=14, color='black', weight = 'bold'),
ax=70, # Posição X da caixa de texto relativa à seta
ay=-60, # Posição Y da caixa de texto relativa à seta (negativo para cima)
bgcolor="rgba(255, 255, 255, 0.8)", # Fundo branco para o texto
bordercolor=AZUL2, # Borda da caixa de texto
borderwidth=1,
borderpad=4
)

Anotação para o valor máximo

fig.add_annotation(
x=idx_max,
y=venda_max,
text=f"As vendas ultrapassaram pela
1ª vez a faixa de R$ 100 mil
no 2º Semestre de {idx_max.year}",
showarrow=True,
arrowhead=1,
arrowsize=2,
arrowwidth=1,
arrowcolor=AZUL2,
font=dict(size=14, color='black', weight = 'bold'),
ax=-70, # Posição X da caixa de texto (negativo para esquerda)
ay=-60, # Posição Y da caixa de texto
bgcolor="rgba(255, 255, 255, 0.8)",
bordercolor=AZUL2,
borderwidth=1,
borderpad=4
)

fig.show()

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Ei, William!

Que legal ver você ativo nas atividades e parabéns por buscar outras formas de resolver o problema!

Gostei da sua solução e agradeço por compartilhar com a comunidade. Com certeza ajudará todos(as) os(as) colegas da comunidade.

Continue se dedicando aos estudos e qualquer dúvida, compartilhe.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!