1
resposta

[Dúvida] FICOU UM NÚMERO DUPLICADO NO GRÁFICO E NÃO CONSEGUI TIRAR

Ficou o número 4 repetido nesse código:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import FuncFormatter
import calendar

# Dicionário de tradução de meses
meses = {
    'January': 'Jan',
    'February': 'Fev',
    'March': 'Mar',
    'April': 'Abr',
    'May': 'Mai',
    'June': 'Jun',
    'July': 'Jul',
    'August': 'Ago',
    'September': 'Set',
    'October': 'Out',
    'November': 'Nov',
    'December': 'Dez'
}

# Paleta de cores da Zoop
CINZA_1 = "#F2F2F2"   # Fundo da figura e do gráfico
CINZA_5 = "#595959"   # Título
AZUL_1  = "#0A59A3"   # Linhas e textos
VERMELHO_1 = "#C60C30" # Cor para os círculos e números

# Supondo que df['data'] está no formato datetime and df['faturamento'] contém os valores
# Criação da coluna com nomes dos meses
df['mes'] = df['data'].dt.strftime('%B')

# Ordenação dos meses corretamente
meses_ordem = list(calendar.month_name)[1:]  # ['January', ..., 'December']

# Agrupamento e soma do faturamento por mês, reordenando
vendas_mensais = (
    df.groupby('mes')['faturamento']
    .sum()
    .reindex(meses_ordem)
)

# Função para formatar os valores do eixo Y como "R$ x.xx M"
def formatar_milhoes(valor, pos):
    return f"R$ {valor / 1_000_000:.2f} M"

# Criar a figura e os eixos
fig, ax = plt.subplots(figsize=(12, 6), facecolor=CINZA_1)
ax.set_facecolor(CINZA_1)

# Plot da linha com marcadores
ax.plot(
    vendas_mensais.index,
    vendas_mensais.values,
    marker='o',
    color=AZUL_1,
    linewidth=2
)

# Título da figura
ax.set_title(
    "Vendas totais mensais em 2023",
    fontsize=18,
    color=CINZA_5,
    pad=15
)

# Configurações do eixo Y
ax.yaxis.set_major_formatter(FuncFormatter(formatar_milhoes))
ax.tick_params(axis='y', labelsize=12, labelcolor=AZUL_1)

# Configurações do eixo X
ax.tick_params(axis='x', labelsize=12, labelcolor=AZUL_1)

# Remove os labels dos eixos
ax.set_xlabel("")
ax.set_ylabel("")

# Remove as bordas superior e direita
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)

# Alterar rótulos do eixo x utilizando o dicionário de tradução
plt.xticks(vendas_mensais.index, [meses[mes] for mes in vendas_mensais.index], fontsize=12, color=AZUL_1)

# Adicionar círculos numerados
for i, point in enumerate([(4, vendas_mensais.iloc[4]), (7, vendas_mensais.iloc[7]), (10, vendas_mensais.iloc[10]), (11, vendas_mensais.iloc[11])], start=1): 
    plt.scatter(point[0], point[1], s=200, color='none', edgecolors=VERMELHO_1, alpha=0.7)
    plt.text(point[0] - 0.3, point[1] + 0.1, str(i), fontsize=12, color=VERMELHO_1)

# Add the number to the left of the circle
ax.text(idx - 0.5, y, str(i), color=VERMELHO_1, fontsize=14, ha='right', va='center')


# Ajusta layout
plt.tight_layout()
plt.show()

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

1 resposta

Olá, estudante. Tudo bem com você?

Poderia compartilhar comigo o link do seu projeto no Colab? Assim eu posso analisar melhor o código e te fornecer uma resposta mais assertiva sobre o que pode estar acontecendo.

Você só precisa clicar em compartilhar e depois mudar a privacidade do arquivo para "Qualquer pessoa com o link".

Uma caixa de diálogo de compartilhamento para um Jupyter Notebook intitulado "Projeto_Final_IA_aplicada_a_Data_Science.ipynb", mostrando opções de acesso

Fico no aguardo e a disposição :)