1
resposta

Formatar gráfico do visual python no power bi

Alguém pode me ajudar estou tentando criar gráficos de series mas a formatação funciona quando rodo no spyder, mas no power bi fica totalmente diferente os gráficos.

Gráfico gerado no spyderGráfico gerado no power bi

segue abaixo o código:

# O código a seguir para criar um dataframe e remover as linhas duplicadas sempre é executado e age como um preâmbulo para o script: 

# dataset = pandas.DataFrame(data, Receita, churn, inativos, novos, ticket medio, recorrencia)
# dataset = dataset.drop_duplicates()

# Cole ou digite aqui seu código de script:

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from statsmodels.tsa.api import VAR, ARIMA

dados = dataset

dados["data"] = pd.to_datetime(dados["data"])

dados.set_index('data', inplace=True)

media_dia = dados.mean()

dados = dados.fillna(media_dia)

dados_mensal = dados.resample("M").sum()

dados_mensal.isnull().sum()

media = dados_mensal.mean()


dados_substituidos = dados_mensal.fillna(media)



dados_substituidos.rolling(12).mean().plot(subplots=True)

dados_substituidos.diff().plot(subplots=True)

dados_substituidos.plot(subplots=True)

plt.show()

model = VAR(dados_substituidos)

model_fitted = model.fit()


print(model_fitted.summary())

lag_order = model_fitted.k_ar

forecast = model_fitted.forecast(model_fitted.endog, steps=10)

# Criar um DataFrame para armazenar as previsões

forecast_index = pd.date_range(start=dados_substituidos.index[-1] + pd.Timedelta(weeks=1), periods=10, freq='M')
forecast_df = pd.DataFrame(forecast, index=forecast_index, columns=dados_substituidos.columns)

fig, axes = plt.subplots(nrows=6, ncols=1, figsize=(20, 15))
colunas = dados_substituidos.columns.tolist()
cores = ["green", "red", "blue", "gray", "pink", "orange"]
cores2 = ["orange", "blue", "pink", "red", "gray", "green"]

for i, coluna in enumerate(colunas):

    # Use Matplotlib diretamente para criar os gráficos
    
    axes[i].plot(dados_substituidos.index, dados_substituidos[coluna], color=cores[i], label="Original")
    
    axes[i].plot(forecast_df.index, forecast_df[coluna], color=cores2[i], linestyle='--', label='Previsão')

    # Ajuste as escalas dos eixos conforme necessário
    axes[i].set_xlim([dados_substituidos.index[0], forecast_df.index[-1]])
    axes[i].set_ylim([min(dados_substituidos[coluna].min(), forecast_df[coluna].min()),
                     max(dados_substituidos[coluna].max(), forecast_df[coluna].max())])
                     
    # Adicione a legenda para cada subplot
    axes[i].legend()

# Remova as linhas de grade para todos os subgráficos

for ax in axes:
    ax.spines['top'].set_visible(False)
    ax.spines['right'].set_visible(False)

# Exiba o gráfico

plt.show()
1 resposta

Oi José!

Pelo que você descreveu e pelas imagens compartilhadas, parece que os gráficos gerados no Spyder estão com uma formatação diferente quando você tenta visualizá-los no Power BI. Isso pode ocorrer devido a diferenças na maneira como o Power BI renderiza os gráficos em comparação com o ambiente do Spyder.

Uma possível solução para esse problema é garantir que as configurações de estilo e formatação do gráfico sejam definidas explicitamente no código, para que o Power BI as respeite. Por exemplo, você pode definir o estilo do Seaborn antes de gerar os gráficos para garantir consistência:

sns.set_style("whitegrid")  # Define o estilo do gráfico para 'whitegrid'

Outro ponto: você pode querer verificar se o Power BI está utilizando a mesma versão das bibliotecas de gráficos (como Matplotlib e Seaborn) que você está usando no Spyder. Diferenças nas versões das bibliotecas podem levar a resultados de renderização diferentes.

Outra dica é verificar as configurações de visualização no Power BI, pois ele tem suas próprias opções de formatação que podem estar sobrepondo o que você definiu no código Python.

Se o problema persistir, você pode tentar exportar os gráficos como imagens a partir do Spyder e, em seguida, importá-los diretamente para o Power BI como imagens estáticas. Isso garantirá que a visualização seja exatamente a mesma, mas você perderá a interatividade e a capacidade de atualização automática dos gráficos.

Espero ter ajudado e bons estudos!