3
respostas

O codigo com o seaborn nao funciona

Pois então deviado as novas versoes do seaborn, e pelo fato de que so é possivel fazer o habiente virtual com as novas versoes das bibliotecas citadas, então após tentar varias variações( e usar o gpt) cheguei nesse código funcional

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker

# Configurações iniciais de fonte
plt.rcParams['font.family'] = 'sans-serif'
plt.rcParams["font.sans-serif"] = 'Verdana'

def candlestick(date, open, high, low, close):
    fig, ax = plt.subplots(figsize=(30,11), dpi=72, facecolor='#edf3ee') 
    ax.set_facecolor("#edf3ee")
    
    # Calculando as cores (verde para alta, vermelho para baixa)
    cores = ["green" if c > o else "red" for c, o in zip(close, open)]
    
    # Desenhando o corpo dos candles
    for i in range(len(date)):
        # Pavio
        ax.plot([date[i], date[i]], [low[i], high[i]], color=cores[i], alpha=0.7)  # Pavio com transparência
        
        # Corpo do candle
        ax.bar(date[i], close[i] - open[i], bottom=open[i], color=cores[i], width=0.8, alpha=0.7)  # Barras com transparência
    
    # Melhorando a formatação do gráfico
    ax.xaxis.set_major_locator(mticker.MaxNLocator(10))  # Limitar o número de labels no eixo X
    ax.tick_params(axis='x', rotation=45)  # Rotacionar os labels do eixo X para evitar sobreposição
    ax.set_xlabel("Date")
    ax.set_ylabel("Price")
    
dataset["Date"] = pd.to_datetime(dataset["Date"], format="%Y-%m-%dT%H:%M:%S.%f")

candlestick(dataset["Date"], dataset["Open"], dataset["High"], dataset["Low"], dataset["Close"])

plt.subplots_adjust(left=0.07, bottom=0.05, right=0.95, top=0.95)
plt.show()
3 respostas

Olá, Geronimo! Como vai?

Parabéns por concluir a atividade e obrigada por compartilhar o código com a comunidade, tenho certeza de que será útil para outras pessoas!

Desejo sucesso em sua trajetória! ✨✨

Fico à disposição!

Olá,

Ao tentar rodar o código acima obtive a seguinte mensagem:

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

bom nao tenho certeza do motivo, mas voce so copiou o codigo inteiro? aparentemente eu escrevi ele de um jeito que nao da pra copiar de uma vez

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker

# Configurações iniciais de fonte
plt.rcParams['font.family'] = 'sans-serif'
plt.rcParams["font.sans-serif"] = 'Verdana'

def candlestick(date, open, high, low, close):
    fig, ax = plt.subplots(figsize=(30,11), dpi=72, facecolor='#edf3ee') 
    ax.set_facecolor("#edf3ee")
    
    # Calculando as cores (verde para alta, vermelho para baixa)
    cores = ["green" if c > o else "red" for c, o in zip(close, open)]
    
    # Desenhando o corpo dos candles
    for i in range(len(date)):
        # Pavio
        ax.plot([date[i], date[i]], [low[i], high[i]], color=cores[i], alpha=0.7)  # Pavio com transparência
        
        # Corpo do candle
        ax.bar(date[i], close[i] - open[i], bottom=open[i], color=cores[i], width=0.8, alpha=0.7)  # Barras com transparência
    
    # Melhorando a formatação do gráfico
    ax.xaxis.set_major_locator(mticker.MaxNLocator(10))  # Limitar o número de labels no eixo X
    ax.tick_params(axis='x', rotation=45)  # Rotacionar os labels do eixo X para evitar sobreposição
    ax.set_xlabel("Date")
    ax.set_ylabel("Price")
    
dataset["Date"] = pd.to_datetime(dataset["Date"], format="%Y-%m-%dT%H:%M:%S.%f")

candlestick(dataset["Date"], dataset["Open"], dataset["High"], dataset["Low"], dataset["Close"])

plt.subplots_adjust(left=0.07, bottom=0.05, right=0.95, top=0.95)
plt.show()

acho que agora deve estar certo